在 OSX 下,有“open -W”允许等待可执行文件结束。
Windows 的等效指令是什么?
对于 sublime-text (subl) 这样的程序,Linux 确实具有这种非阻塞行为。它是如何做到的(execv?)
基本上,我尝试在 C 程序中启动可执行文件并等待它结束。
最佳答案
通过编辑,在 linux 下,您正在查看:
childpid = fork();
if (childpid) {
execve("program", argvp, envp);
} else {
int status;
pid_t pid = wait(&status);
在windows下,需要使用CreateProcess
创建进程,然后使用 WaitForSingleObject
等待进程终止;例如
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);
}
关于Linux/OSX/Windows - 等待进程结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875228/