linux编程---进程编程
进程通信(IPC)---信号处理
信号:通过命令kill –l 查看---信号可以由硬件产生,亦可以用软件产生
软件产生信号的函数:
kill函数,raise函数,alarm函数,setitimer函数
1:kill函数
功能:系统向进程发起信号;用的多是第一种情况
参数:pid进程号;sig信号
2:raise函数
功能:向本进程发起信号
参数:sig信号
3:alarm函数
功能:过一定时间后向本进程发送SIGALRM信号---缺省操作是结束进程
参数:seconds设置时间的单位是秒
信号操作函数:
sigemptyset函数,sigfillset函数,sigaddset函数,sigdelset函数,sigismember函数,sigprocmask函数,sigaction函数
pause函数,sigsuspend函数,sigsetjmp函数,siglongjmp函数
1:sigemptyset函数
功能:初始化信号集合,设置为空
参数:set信号集合
2:sigfillset函数
功能:初始化信号集合,屏蔽所有的信号,也就是所以信号的标识设为1了;
参数:set信号集合
3:sigaddset函数
功能:向信号集合添加信号
参数:set信号集合;signo为信号;
4:sigdelset函数
功能:删除信号集合中的信号;
参数:set信号集合,signo信号;
5:sigismember函数
功能:判断信号是否在其中
参数:set信号集合,signo信号
6:sigprocmask函数
功能:对信号集合做一些操作
参数:how标识做如何操作:
set信号集合;oset保存当前信号阻塞的信号集合
7:sigaction函数
功能:对消息,转移到自定义函数来处理
参数:signo信号(除去SIGKILL,SIGSTOP信号),act结构体是对此信号如何处理,oact是之前处理该信号的信息
结构体:sigaction
重点就是第一个:指向处理信号的函数。带一个参数signo的;第2,5参数和第一个参数功能一样;第4一般为0;第三个用于设置阻塞信号的集合。
8:pause函数,sigsuspend函数
进程挂起函数
9:sigsetjmp函数,siglongjmp函数
跳转函数---goto相似
进程通信(IPC)---管道
管道:沟通进程通信,利用文件;
参数fildes内有2个文件标识号,第一个用于表示来读端,第二个表示写端---共同文件2个文件标识号
重定向操作
将对新文件标示定向到老的文件标识号中,做到重定向的效果。
进程通信(IPC)---消息队列