一创建进程:
pid_t fork(void); pid_t等价与有符号整型失败-1,成功时父进程返回子进程进程号,子进程0;父子进程 就是fork返回值区分。
例子:
二.结束进程:
exit/_exit (int status) 只有status第八位才有效。 其中exit结束时会刷新流的缓冲区。。 _exit不会刷新。
三.exec函数族:
让当前进程执行另外程序,使父子进程执行不同程序。
步骤1。父创建子进程 子进程调用exec函数 父进程不受影响
四.当前进程执行其他进程用法
进程创建:
int execl(char *path,char * arg) execlp(char *file,char * arg)path执行的程序名称,包含路径。arg传递给执行的程序的参数列表
system(const char *command);成功返回cimmand子进程,继续程序。
五。进程回收:
wait 回收任何一个子进程,无法指定。
pid_t wait(int *status); //回收成功是子进程的进程号,失败是-1; 子进程没结束 父进程阻塞。status指定保存子进程返回值和结束方式地址 status =NULL时子进程结束父进程不回收。 返回值和结束方式exit/_exit/return 返回某个值(0-255) 父进程调用wait(&status) WIFEXITED 判断子进程是不是正常结束。WEXITSTATUS 获取子进程返回值。
waitpid(pid_t pid,int * status,int option);