c - 系统函数调用异步?

标签 c windows system sleep wine

在代码中的一个地方,我用 system-Call 调用了一个外部工具.我用 Wine 工作,用 C 编程。

调用是这样的:

system("blabla.exe outfile");

该命令是动态生成的,用于更改输出文件。几行之后,我尝试使用 fopen 打开生成的文件,但是 fopen 返回 NULL

如果我将调用更改为以下一切正常:

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

但我不喜欢等待 2 秒......而且这个解决方案非常糟糕。 我认为 system-Call 是同步的?所以子进程及其所有 (File-)Handles 应该在 system-Call 之后关闭,不是吗?我对此有点困惑。

谢谢

最佳答案

system 调用是同步的,根据它在执行结束后返回的手册页。我怀疑 wine 刷新文件句柄有问题。

关于c - 系统函数调用异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822264/

相关文章:

c - 如何包含必要的 kernel32.lib、 header - 或在自定义应用程序中使用标准 dll?

r - 从 R 调用批处理文件时路径中存在空格问题

汇编中的C变量使用,如何在arm aarch64中选择32位操作数

C - fclose() seg fault//如何不覆盖内存//欧氏div alg的C实现

c - 使用 libpurple 的好例子?

windows - 将 Git 分支添加到命令提示符

c - GCC 为什么以及如何编译缺少 return 语句的函数?

c++ - 如何通过 Windows API 关闭电脑?

java - 获取操作系统级别的系统信息

PHP MySQL 系统调用创建空文件,没有返回值,也没有产生错误信息