加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

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

发布时间:2016-09-27 18:52:05 所属栏目:Unix 来源:站长网
导读:副标题#e# 进程和程序的区别: 进程: 程序的一次执行过程 动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令、数据的有序集合 是个文件,可直观看到 程序program 静态的概念,本身不会发生变化。指令谁来执行,数据谁来访问?cpu! 但前提是cpu

文件查找方式:

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

(编辑:云计算网_泰州站长网)

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

推荐文章
    热点阅读