Linux如何创建进程
时间: 2024-07-22 08:00:17 浏览: 186
在 Linux 系统中,创建进程通常有两种方式:使用系统调用和使用 fork() 和 exec() 家族的函数。以下是两个主要方法:
1. **使用 fork() 和 exec()**:
- `fork()` 函数:这是一个创建新进程的系统调用,它在父进程中复制一个新的子进程。父进程和子进程拥有相同的代码段、数据段和堆栈,但数据副本是独立的。`fork()` 返回值在父进程中为子进程 ID (PID),在子进程中返回 0(若父进程返回非零值)。
- `exec()` 家族(如 `execvp()`):这个函数用于替换子进程的当前执行环境,即执行另一个程序。你需要提供一个可执行文件名和一个参数数组给它。一旦执行成功,原来的进程会结束,而新的程序会接管该进程的上下文。
```bash
#include <unistd.h>
#include <stdio.h>
int main() {
pid_t pid = fork(); // 创建子进程
if (pid == 0) { // 子进程
execlp("ls", "ls", NULL); // 执行 ls 命令
perror("Failed to execute");
exit(1);
} else if (pid > 0) { // 父进程
printf("Child process created with PID %d\n", pid);
wait(NULL); // 等待子进程结束
} else {
perror("Failed to fork");
exit(1);
}
return 0;
}
```
阅读全文