进程:
每一个进程都有一个非负整数表示的唯一进程ID。当一个进程终止后,其进程ID就成为复用的候选者,大多数UNIX系统实现延时复用算法,使得赋予新建进程的ID不同于最近终止进程所使用的ID,防止将新进程误认为某个先前终止的进程。
创建多进程:
这里就需要调用命令fork()或者vfork()
fork():
一个现有的进程可以调用fork()系统调用用来创建一个新的进程:
pid_t fork(void);
由fork()创建的新进程被称为子进程。
1,子进程可以通过getpid()和getppid()分别获取自己的进程ID和父进程ID,所以返回0;
2,一个父进程可以有很多个子进程,没有一个系统调用可以获取所有的子进程ID,所以需要将子进程的ID通过返回值的形式传递给父进程。
子进程是父进程的副本,它将得到父进程的文本段、数据段、堆和栈副本,这样父子进程都将继续执行fork()之后的代码。但父子进程并不共享这些存储空间,父子进程只是共享文本段。
新创建的父子进程谁先执行没有规定,由系统调用决定。
注:
1.fork()函数被调用一次,但有两次返回。