写一个简单的fork函数
时间: 2024-09-14 22:14:29 浏览: 33
在Unix/Linux系统编程中,`fork()`是一个创建新进程的基本函数,它用于复制当前进程并创建一个新的进程。这个新的进程称为子进程,而原进程称为父进程。下面是一个简单的C语言实现`fork()`函数的例子:
```c
#include <unistd.h>
#include <stdio.h>
pid_t fork() {
pid_t pid; // 存储子进程ID的结果
pid = fork(); // 调用fork系统调用
if (pid == 0) { // 如果当前进程是子进程
printf("I am the child process with PID: %d\n", getpid());
} else if (pid > 0) { // 如果当前进程是父进程
printf("I am the parent process with PID: %d\n", getpid());
printf("Child process PID is: %d\n", pid); // 输出子进程PID
} else {
perror("Fork failed"); // fork失败错误处理
return -1;
}
return pid; // 返回fork结果
}
int main() {
if (fork()) {
// 父进程继续执行其他任务
} else {
// 子进程运行
}
return 0;
}
```
在这个例子中,`fork()`如果成功返回的是新创建子进程的ID(0表示子进程),非零值表示父进程自身。注意,每个程序通常只调用一次`fork()`。