编写一段程序,使用系统调用 fork()创建一个子进程,在ubunton实现
时间: 2024-03-10 22:48:32 浏览: 118
好的,下面是使用 fork() 系统调用创建子进程的 C 语言程序示例:
```c
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid = fork();
if (pid == -1) {
// fork() 函数调用失败
perror("fork");
return 1;
} else if (pid == 0) {
// 子进程
printf("Hello from child process! (pid=%d)\n", getpid());
} else {
// 父进程
printf("Hello from parent process! (pid=%d, child_pid=%d)\n", getpid(), pid);
}
return 0;
}
```
运行结果:
```
Hello from parent process! (pid=1234, child_pid=1235)
Hello from child process! (pid=1235)
```
代码解释:
1. `fork()` 函数会返回两次,一次在父进程中,返回值是子进程的 PID;一次在子进程中,返回值是 0。
2. 父进程和子进程会共享代码段,但是每个进程会有自己的数据段和堆栈段。
3. 使用 `getpid()` 函数获取当前进程的 PID。
4. 使用 `perror()` 函数打印错误信息。
注意:这个程序只是一个简单的示例,实际使用中需要考虑更多的情况,比如进程间的通信、进程的状态管理、进程的退出等等。
阅读全文