的读取端,filedes1则为管道的写入端。返回值:若成功则返回零,否则返回1,错误原因存于err
o中。阻塞问题:当管道中的数据被读取后,管道为空。一个随后的read调用将默认的被阻塞,
等待某些数据写入。功能:管道是一种把两个进程之间的标准输入和标准输出连接起来的机制,从而提供一种让
多个进程间通信的方法,当进程创建管道时,每次都需要提供两个文件描述符来操作管道。其中一个对管道进行写操作,另一个对管道进行读操作。对管道的读写与一般的IO系统函数一致,使用write函数写入数据,使用read读出数据。
表头文件:i
cludesig
alh功能:设置某一信号的对应动作函数原型:voidsig
ali
tsig
umvoidha
dleri
ti
t
或者:typedefvoidsig_ti
tsig_tsig
ali
tsig
umsig_tha
dler可看成是sig
al函数(它自己是带有两个参数,一个为整型,一个为函数指针的函数),而这个sig
al函数的返回值也为一个函数指针,这个函数指针指向一个带整型参数,并且返回值为void的一个函数。参数说明:第一个参数sig
um指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号。第二个参数ha
dler描述了与信号关联的动作,它可以取以下三种值:(1)一个返回值为正数的函数地址此函数必须在sig
al被调用前申明,ha
dler中为这个函数的名字。当接收到一个类型为sig的信号时,就执行ha
dler所指定的函数。这个函数应有如下形式的定义:i
tfu
ci
tsigsig是传递给它的唯一参数。执行了sig
al调用后,进程只要接收到类型为sig的信号,不管其正在执行程序的哪一部分,就立即执行fu
c函数。当fu
c函数执行结束后,控制权返回进程被中断的那一点继续执行。(2)SIGIGN这个符号表示忽略该信号,执行了相应的sig
al调用后,进程会忽略类型为sig的信号。(3)SIGDFL这个符号表示恢复系统对信号的默认处理。函数说明:sig
al会依参数sig
um指定的信号编号来设置该信号的处理函数。当指定的信
f号到达时就会跳转到参数ha
dler指定的函数执行。当一个信号的信号处理函数执行时,如果进程又接收到了该信号,该信号会自动被储存而不会中断信号处理函数的执行,直到信号处理函数执行完毕再重新调用相应的处理函数。但是如果在信号处理函数执行时进程收到了其它类型的信号,该函数的执行就会被中断。返回值:返回先前的信号处理函数指针,如果有错误则返回SIG_ERR1。附加说明:在信号发生跳转到自定的ha
dler处理函数执行后,系统会自动将此处理函数换回原来系统预设r