进程函数-创建子进程
pid_t fork(void)
功能:创建子进程
fork会被调用一次,却返回两次,有三种不同的返回值:
1.在父进程中,fork返回子进程创建的PID.
2.在子进程中,fork返回0.
3.如果出现错误,fork返回一个负值.
注:子进程会复制代码自行运行,子进程中的变量不影响父进程,子进程执行的次序不确定.
pid_t vfork(void)
功能:创建子进程
vfork会被调用一次,却返回两次,有三种不同的返回值:
1.在父进程中,vfork返回子进程创建的PID.
2.在子进程中,vfork返回0.
3.如果出现错误,vfork返回一个负值.
注:子进程与父进程共享数据段,子进程中的变量与父进程保持一致,子进程比父进程优先运行.
进程函数-exec函数
注:exec函数启动一个新的程序,会替换原有的进程,因此进程的PID保持不变.
int execl(const char * path , const char * arg1 , ...)
|
变量 |
作用 |
|
path |
被执行程序名(含完整路径) |
|
arg1 - argn |
被执行程序所需的命令行参数,含程序名.以空指针(NULL)结束. |
int execlp(const char * path , const char * arg1 , ...)
|
变量 |
作用 |
|
path |
被执行的程序名(不含路径,将从PATH环境变量中查找该程序) |
|
arg1 - argn |
被执行程序所需的命令行参数,含程序名.以空指针(NULL)结束. |
int execv(const char * path , char * const argv[])
|
变量 |
作用 |
|
path |
被执行程序名(含完整路径) |
|
argv[ ] |
被执行程序所需要的命令行参数数组. |