在代码中的某个位置,我使用system-Call调用外部工具。我与Wine一起工作并用C编程。
电话是这样的:
system("blabla.exe outfile");
动态生成命令以更改outfile。几行后我尝试用fopen
打开生成的文件,但fopen
返回NULL
。
如果我将呼叫更改为以下内容,则一切正常:
system("blabla.exe outfile");
Sleep(2000);
但我不想等待2秒......这个解决方案非常糟糕。
我认为system
- 呼叫同步工作?所以子进程及其所有(文件)句柄应该在system
- 调用后关闭,不是吗?我对此有点困惑。
由于
答案 0 :(得分:1)
system
调用是同步的,根据执行结束后返回的手册页。我怀疑有葡萄酒冲洗文件句柄的东西。