进程函数-获取进程ID
pid_t getpid(void)
功能:获取本进程ID
pid_t getppid(void)
功能:获取父进程ID



进程函数-创建子进程
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[ ] 被执行程序所需要的命令行参数数组.

int system(const char* string)
功能:调用fork产生子进程,由子进程调用"/bin/sh -c string"來执行参数string所代表的命令与参数.



进程函数-进程等待
pid_t wait(int * status)
功能:阻塞该进程,直到其某个子进程退出.

int pause(void)
功能:pause只有在执行了一个信号处理程序并从其返回时,pause才返回.