操作系统是通过进程来实现对应用程序的协调运行
在单片机开发中,是没有进程的概念的。因为单片机内就运行了一个程序。但是在 Windows 或者 Linux 里面可以运行多个程序,这些程序需要进行统一的管理。操作系统通过对进程的管理来对不同程序进行管理。
获取进程之间的关系:pstree
操作系统通过 pid 来区分不同的进程。通过命令 ps -ef
可以查看进程的pid。
函数 | 说明 | 返回值 | 头文件 |
---|---|---|---|
pid_t fork(void); | 创建进程 | 成功: 0或者其他正整数 失败: -1 | unistd.h |
执行 fork 函数之后, fork 函数会返回两次不同的值
执行 fork 函数后会创建一个新的进程,他会复制旧的进程里面几乎所有的内容。也就是生成两个几乎一摸一样的进程。而这两个进程都是从 fork 函数返回,所以会有两个返回值。如果从旧的返回,返回值为0或者-1,在新进程返回时,返回新进程的pid
在执行 fork 函数之前,操作系统只有一个进程,fork 函数之前的代码只会被执行一次。fork 函数执行之后的代码会被执行 2 次。
#include <unistd.h> #include <stdio.h> int main(char *argc, char **argv) { pid_t lPid; printf("Before fork!\r\n"); lPid = fork(); printf("After fork pid is %d\r\n", lPid); return 0; }
执行编译完成的可执行程序
Before fork! After fork pid is 3177 After fork pid is 0