蒋潞信号函数手册.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蒋潞信号函数手册

1信号: 1.viod(*signal(int sig,void(*func)(int)))(int); sigaction(int signum,const struct sigaction *act,struct sigaction *oldcat); int sig :要安装的信号值; void(*func):对sig信号的处理,该处理方式有以下两个宏; 1.SIG_DEF:采用系统默认的方式处理信号。 2.SIG_IGN:忽略信号。 另外该函数的第二个参数也可是函数指针,用户可自定义对信号的处理函数。 2.int kill(pid_t pid,int sig); Pid: pid0,给PID为pid的进程发送信号; pid=0,给同一个进程组的所有进程发送信号; pid0pid!=-1,给进程组的所有ID为-pid的 进程发送信号; pid=-1,给出自身之外PID大于1的进程发送信 号; Sig: sig为要发送的信号值。当它为0时不发送任何 信号,通常用于检查进程是否具体像目标进程发 送信号的权限。 当kill()函数发送信号成功时函数返回0,否则返回-1.通过errno以及使用perror可以查看错误信息: EINVAL:所发送的信号无效; EPERM:没有向目标进程发送信号的权限; ESRCH:目标进程不存在或者进程已经终止,处于僵尸状态; 3.int raise(int sig); 和函数kill()的功能一样,区别在于raise()给自身进程发送信号,所以只有一个信号参数没有进程ID; 4.alarm(unsigned int seconds); Seconds: 设置的时间长度; 设当置alarm()之后,在指定的时间后,将给线程本身发送一个SIGALARM信号。当seconds为0时将清除当前进程的alarm()的设置。 5.int setitimer(int which,const struct timerval *value,struct itimerval *ovalue) which: 指定定时器类型: ITIMER_REAL:设定绝对时间经过指定的时间后, 内核将 发送SIGALARM号给本进程; ITIMER_VIRTUAL:设定程序执行时间,只有程序 被调度 执行的时候才记录时间,经过指定的时间 后,内核将发送SIGALARM信号给本进程。 ITIMER_PROF:设定进程执行以及内核因本进程而消耗的时间和,经过指定的时间后,内核将发送ITIMER_VIRTUAL信号给本进程。 itimerval是一个函数结构体。 函数成功调用返回0,失败返回-1; 6.abort():向进程发送SIGABORT信号,默认情况下进程会异常退出,也可定义自己的信号处理函数,通常用于做程序退出前的统一操作和处理。 管道: 1.int pipe (int fildes[2]); pipe 将建立一对描述符,fildes[0]用与从文件中读取数据,fildes[1]用在文件中写入数据。当pipe管道建立后必须要使用fork()派生子进程,然后父子进程分别关闭一个文件描述符。 2.int makefifo(const char*pathname,mode_t mode); Pathname: 为FIFO文件的路径名; mode: 为管道的操作权限; 3信号量 1.key_t ftok(const char *pathname,int proj_id); Pathname:必须是一个已经存在并具有访问权限的文件; Proj_id:只有最大的8个字节有效所以用ASCII字符来作为 proj_id。 2.int semget(key_t key,int nsems,int semflg); Key_t key:信号量的键值; Nsems:信号量的数目; Semflg: IPC_CREAT:如果key指定的信号量集不存在则 创建一个。 IPC_EXCL:和IPC_CREAT一起使用如果信号量已 经存在则返回错误。 Semget()调用成功时返回与键值key对应的信号集的标示符,否则返回-1. 3.int semop(int semid,struct sembuf*sops,unsigned nsops); Semid:信号量集的ID; Sops:指向一个sembuf的结构体数组; Nsops:为sops指向数组的大小; Strcut sembuf{ unsigned short sem_num;/信号量在信号量

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档