在OSX下,有"打开-W"允许等待可执行文件的结束。
Windows的等效指令是什么?
Linux确实具有sublime-text(subl)等程序的非阻塞行为。它是如何做到的(execv?)
基本上,我在C程序中尝试启动可执行文件并等到它结束。
答案 0 :(得分:1)
在Linux下,父进程可以使用wait或waitpid系统调用等待子进程终止。要获得更精细的进程同步,请使用信号量。
答案 1 :(得分:1)
通过编辑,在linux下,您正在查看:
childpid = fork();
if (childpid) {
execve("program", argvp, envp);
} else {
int status;
pid_t pid = wait(&status);
}
在Windows下,您需要使用CreateProcess
来创建进程,然后使用WaitForSingleObject
等待进程终止; e.g。
PROCESS_INFORMATION processInformation = {0};
STARTUPINFO startupInfo = {0};
startupInfo.cb = sizeof(startupInfo);
bool status = CreateProcess(L"Program", L"args", 0, 0, 0,
NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW,
0, 0, &startupInfo, &processInformation);
if (status) {
WaitForSingleObject(processInformation.hProcess, INFINITE);
}