在windows环境下用c语言编写一段程序,使用createprocess函数调用来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,子进程则重复显示字符串“child:”和自己的标识数。
时间: 2023-04-11 15:02:08 浏览: 116
C例子:父进程与子进程
以下是使用 C 语言编写的程序,使用 CreateProcess 函数调用来创建两个子进程,并由父进程重复显示字符串“parent:”和自己的标识数,子进程则重复显示字符串“child:”和自己的标识数。
```c
#include <windows.h>
#include <stdio.h>
#define MAX_COUNT 10
int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi1, pi2;
int i;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi1, sizeof(pi1));
ZeroMemory(&pi2, sizeof(pi2));
// Create first child process
if (!CreateProcess(NULL, "child.exe 1", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi1))
{
printf("CreateProcess failed (%d).\n", GetLastError());
return 1;
}
// Create second child process
if (!CreateProcess(NULL, "child.exe 2", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi2))
{
printf("CreateProcess failed (%d).\n", GetLastError());
return 1;
}
// Wait for both child processes to finish
WaitForSingleObject(pi1.hProcess, INFINITE);
WaitForSingleObject(pi2.hProcess, INFINITE);
// Close process and thread handles
CloseHandle(pi1.hProcess);
CloseHandle(pi2.hProcess);
CloseHandle(pi1.hThread);
CloseHandle(pi2.hThread);
return 0;
}
```
请注意,此代码仅在 Windows 环境下运行。如果您想在其他操作系统上运行此代码,您需要进行相应的修改。
阅读全文