В одном месте кода я вызываю внешний инструмент с помощью системного вызова . Я работаю с Wine и программирую с C.
Звонок такой:
system("blabla.exe outfile");
Команда генерируется динамически для изменения выходного файла. Через несколько строк я пытаюсь открыть сгенерированный файл с fopen
, но fopen
возвращает NULL
.
Если я переключаю вызов на следующее, все работает:
system("blabla.exe outfile");
Sleep(2000);
Но я не люблю ждать 2 секунды ... И это решение очень плохое.
Я думаю, что system
-Call работает синхронно? Таким образом, подпроцесс и все его (File-) дескрипторы должны быть закрыты после system
-Call, не так ли? Я немного запутался по этому поводу.
Спасибо