一、子进程
1.fork()创建子进程
一个现有的进程可以调用 fork()函数创建一个新的进程,调用 fork()函数的进程称为父进程,由 fork()函
数创建出来的进程被称为子进程(child process)。(使用该函数需要包含头文件<unistd.h>) 2.创建的子进程为新的独立的进程,与父进程地位相等。但父子进程之间也有些相同点,子进程拷贝了父进程的数据段、堆、栈以及继承了父进程打开的文件描述符。对于程序来说,子进程和父进程共享代码段,在内存中只存在一份代码段数据。 3.子进程和父进程之间存在竞争关系,可以通过信号来指定它们的执行顺序。fork()函数调用完成之后,父进程、子进程会各自继续执行 fork()之后的指令,最终父进程会执行到 exit()结束进程,而子进程则会通过_exit()结束进程。 二、进程的诞生与终止 事实上,Linux系统下的所有进程都是由其父进程创建而来,譬如在 shell 终端通过命令的方式执行一个程序./app,那么 app进程就是由 shell 终端进程创建出来的,shell 终端就是该进程的父进程。 进程号为 1 的进程便是所有进程的父进程,通常称为 init 进程,它是 Linux 系统启动之后运行的第一个进程,它管理着系统上所有其它进程,init 进程是由内核启动,因此理论上说它没有父进程。 标签:fork,shell,创建,app,代码段,与子,进程 From: https://www.cnblogs.com/DongdongAa/p/17083345.html