C语言编写程序,在程序中创建一个子进程,使父子进程分别打印不同的内容
时间: 2024-09-15 19:06:23 浏览: 85
Linux中使用C语言的fork()函数创建子进程的实例教程
在C语言中,你可以通过`fork()`函数来创建一个新的子进程。`fork()`是一个系统调用,它会复制当前进程的所有属性,包括内存映射、打开文件描述符等。下面是一个简单的示例,演示如何创建子进程并让它们各自打印不同的内容:
```c
#include <stdio.h>
#include <unistd.h>
#define STRING_TO_PRINT "Parent process message\n"
#define STRING_TO_PRINT_CHILD "Child process message\n"
int main() {
pid_t child_pid; // 子进程ID
// 创建子进程
if ((child_pid = fork()) == 0) { // 如果返回0,表示这是子进程
printf(STRING_TO_PRINT_CHILD); // 子进程打印特定信息
exit(0); // 立即退出子进程
} else if (child_pid > 0) { // 如果是父进程
printf(STRING_TO_PRINT); // 父进程打印特定信息
wait(NULL); // 等待子进程结束
} else { // fork失败
perror("Fork failed");
exit(EXIT_FAILURE);
}
return 0;
}
```
在这个例子中,父进程首先调用`fork()`,如果返回值大于0,那么它是父进程,并打印出`STRING_TO_PRINT`;如果返回值是0,那么它是子进程,将打印出`STRING_TO_PRINT_CHILD`。然后子进程会立即终止。
阅读全文