当用户进行系统调用陷入内核态的时候,特权级别发生变化,因此也需要切换堆栈,内核空间使用的就是内核栈.
将fork()
和exec()
进行分离,能够在创建子进程之后、运行子进程程序之前运行其他代码,从而能够灵活地进行设置,改变子进程程序的运行环境。wait()
函数则提供了在进程运行顺序不确定的情况下,保证子进程优先运行的一种方法。
父进程与子进程的变量相互独立.
使用pipe
进行进程间通信.
wait()
函数返回子进程pid.如果错误返回(pid_t)-1
.
如果一个进程没有子进程,那么wait()
返回-1
,并且errno
设为ECHILD
.
子进程不会产生任何输出。