UNIX环境高级编程:进程管理和通信
文件查找方式: p 可以只给出文件名,系统会查找环境变量$PATH所包含的路径。 参数表传递方式: 逐个列举或者将所有参数通过指针数组传递。 l(list) 表示逐个列举。 v(vertor) 表示将所有参数构造成指针数组传递。 环境变量的使用: e(enviromen) 可以在envp[ ]中传递当前进程所使用的环境变量 使用exec函数族时必须加上错误判断语句 常见的错误原因: 找不到文件或路径,errno被设置为ENOENT 数组argv和envp忘记用NULL结束,errno被设置为EFAULT 没有对应的可执行文件运行权限,errno被设置为EACCESS 进程的回收 <sys/types.h> <sys/wait.h> 等待回收子进程的退出状态 pid_t wait( int *status ); 返回值: 成功 >0 回收子进程的pid 失败 -1。 pid_t waitpid ( pid_t pid, int * status, int options ); 参数: pid: pid>0:只等待进程ID等于pid的子进程,不管已经有其他子进程运行结束退出了,只要指定的子进程还没有结束,waitpid就会一直等下去。 pid=-1:等待任何一个子进程退出,此时和wait作用一样。 pid=0:等待其组ID等于调用进程的组ID的任一子进程。 pid<-1:等待其组ID等于pid的绝对值的任一子进程。 status status指向的对象用来保存子进程退出时的状态 若为空,表示忽略子进程退出时的状态 若不为空,表示保存子进程退出时的状态 options WNOHANG:若由pid指定的子进程并不立即可用,则waitpid不阻塞,此时返回值为0 WUNTRACED:若某实现支持作业控制,则由pid指定的任一子进程状态已暂停,且其状态自暂停以来还未报告过,则返回其状态。 0:同wait,阻塞父进程,等待子进程退出。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |