вызов системной функции asynchron? - PullRequest
1 голос
/ 26 июля 2011

В одном месте кода я вызываю внешний инструмент с помощью системного вызова . Я работаю с Wine и программирую с C.

Звонок такой:

system("blabla.exe outfile");

Команда генерируется динамически для изменения выходного файла. Через несколько строк я пытаюсь открыть сгенерированный файл с fopen, но fopen возвращает NULL.

Если я переключаю вызов на следующее, все работает:

system("blabla.exe outfile");
Sleep(2000);

Но я не люблю ждать 2 секунды ... И это решение очень плохое. Я думаю, что system -Call работает синхронно? Таким образом, подпроцесс и все его (File-) дескрипторы должны быть закрыты после system -Call, не так ли? Я немного запутался по этому поводу.

Спасибо

1 Ответ

1 голос
/ 26 июля 2011

system вызов является синхронным, согласно man-странице, которую он возвращает после завершения выполнения.Я подозреваю, что что-то есть с ручками для промывки вин.

...