加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

UNIX环境高级编程:进程管理和通信

发布时间:2016-10-12 19:48:22 所属栏目:Unix 来源:网络整理
导读:进程和程序的区别: 进程: 程序的一次执行过程 动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令、数据的有序集合 是个文件,可直观看到 程序progr

文件查找方式:

p 可以只给出文件名,系统会查找环境变量$PATH所包含的路径。

参数表传递方式:

逐个列举或者将所有参数通过指针数组传递。

l(list) 表示逐个列举。

v(vertor) 表示将所有参数构造成指针数组传递。

环境变量的使用:

e(enviromen) 可以在envp[ ]中传递当前进程所使用的环境变量

UNIX环境高级编程:进程管理和通信

使用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,阻塞父进程,等待子进程退出。

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读