【Linux】从零开始认识进程 — 前篇
在Linux中,进程是正在执行的程序的实例。每个进程都有自己的地址空间、内存、数据段、堆栈等。
要查看系统中的进程,可以使用ps
命令。ps
是"process status"的缩写。以下是几个常用的ps
命令选项:
ps -e
:显示所有进程。ps -f
:显示完整格式。ps -aux
:显示所有用户的进程。
例如,要以全格式显示所有进程,可以使用以下命令:
ps -ef
另外,top
命令可以实时显示进程信息,包括CPU和内存使用情况。
top
如果你想要查看特定进程的信息,可以使用grep
工具过滤输出。例如,查看包含"bash"的进程:
ps -ef | grep bash
创建一个新进程,可以使用fork()
系统调用,它会创建一个与父进程几乎完全相同的子进程。以下是一个简单的示例:
#include <stdio.h>
#include <unistd.h>
int main() {
pid_t pid = fork();
if (pid == -1) {
// 错误处理
perror("fork failed");
return 1;
} else if (pid == 0) {
// 子进程
printf("Hello from child process!\n");
} else {
// 父进程
printf("Hello from parent process!\n");
}
return 0;
}
编译并运行这段代码,会创建一个子进程,打印出相应的消息。父进程和子进程的区别在于fork()
返回值。子进程接收0,而父进程接收子进程的ID。
评论已关闭