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