Linux下用C语言编程实现一个多进程的例子,并测试。 建立一个C语言文件test_processes.c,建立2个进程,分别输出其进程号。用gcc编译并运 行,测试其正确性
时间: 2024-11-17 11:29:05 浏览: 12
在Linux环境下,我们可以使用`fork()`函数创建新的进程。下面是一个简单的C语言程序`test_processes.c`,它演示了如何创建两个子进程,每个子进程都会打印出它的进程ID:
```c
#include <stdio.h>
#include <unistd.h> // fork() 和 waitpid()
int main() {
pid_t child_pid; // 子进程ID
// 创建第一个子进程
if ((child_pid = fork()) == 0) { // 当前是子进程
printf("This is child process %d\n", getpid()); // 输出子进程ID
exit(0); // 子进程结束
} else if (child_pid > 0) { // 当前是父进程
printf("Parent process, child process created with PID %d.\n", child_pid);
// 等待子进程完成
int status;
waitpid(child_pid, &status, 0);
printf("Child process %d completed.\n", child_pid);
} else {
perror("Fork failed");
return 1;
}
// 创建第二个子进程
if ((child_pid = fork()) == 0) {
printf("This is another child process %d\n", getpid());
exit(0);
} else if (child_pid > 0) {
printf("Parent process, second child process created with PID %d.\n", child_pid);
waitpid(child_pid, &status, 0);
printf("Second child process %d completed.\n", child_pid);
} else {
perror("Fork failed for the second time");
return 1;
}
return 0;
}
```
编译和运行这个程序的步骤如下:
1. 打开终端,切换到包含`test_processes.c`的目录。
2. 使用gcc编译器编译程序:
```
gcc -o test_processes test_processes.c
```
3. 运行生成的可执行文件:
```
./test_processes
```
当你运行这个程序时,你会看到类似这样的输出(每次运行可能会有所不同,因为子进程ID会递增):
```
Parent process, child process created with PID 4567.
This is child process 4568
Child process 4567 completed.
Parent process, second child process created with PID 4569.
This is another child process 4570
Second child process 4569 completed.
```
这表明两个子进程都被成功地创建并执行了它们的任务。
阅读全文