创建进程,分析父子进程关系以及结束进程。

一创建进程:

    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);



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值