3

コードのある場所で、 system-Callを使用して外部ツールを呼び出します。私は Wine で作業し、C でプログラミングしています。

呼び出しは次のようになります。

system("blabla.exe outfile");

このコマンドは、outfile を変更するために動的に生成されます。数行後、生成されたファイルを で開こうとしましたfopenが、 がfopen返されますNULL

呼び出しを次のように変更すると、すべてが機能します。

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

しかし、私は2秒待つのは好きではありません...そして、この解決策は非常に悪いです. system-Call は同期して動作すると思いますか? したがって、すべての (File-)Handles のサブプロセスは、system-Call の後に閉じる必要があります。私はこれについて少し混乱しています。

ありがとう

4

1 に答える 1

4

system実行終了後に返されるマニュアルページによると、呼び出しは同期的です。ワインのフラッシュファイルハンドルに何かがあるのではないかと思います。

于 2011-07-25T21:04:22.247 に答える