Linux:进程终止和进程替换
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main() {
pid_t pid;
// 创建子进程并终止父进程
pid = fork();
if (pid > 0) {
// 父进程
printf("父进程: 我的进程ID是 %d.\n", getpid());
exit(0); // 终止父进程
} else if (pid == 0) {
// 子进程
printf("子进程: 我的进程ID是 %d.\n", getpid());
// 执行新的程序并替换当前进程
execl("/usr/bin/who", "who", NULL);
// 如果execl返回,表示出错
perror("子进程: execl 错误");
exit(1);
}
// 出错处理
perror("main: fork 错误");
return 1;
}
这段代码首先创建一个子进程,然后父进程终止,子进程通过execl
函数替换当前进程,执行who
命令列出当前登录的用户。如果fork
或execl
调用失败,会输出错误信息并退出程序。
评论已关闭