文件名称:执行缺省操作-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2024-06-28 07:07:24
嵌入式 Linux C
(3)函数调用实例 若要使用有名管道的方式来进行进程间通信,则必须首先调用 mkfifo 函数创建管道,创 建后用户可以分别调用函数 open、read、write 来实现对管道的读写,如下所示: /*创建有名管道,并设置相应的权限*/ mkfifo(FIFO,O_CREAT|O_EXCL); /*打开有名管道,并设置非阻塞标志*/ fd=open(FIFO,O_RDONLY|O_NONBLOCK,0); 注意 mkfifo 函数仅仅创建了管道,并没有打开管道。 10.3.2 信号通信 1.信号概述 信号是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理 器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信 号的到达,事实上,进程也不知道信号到底什么时候到达。 信号是进程间通信机制中惟一的异步通信机制,可以看作是异步通知,通知接收信号的 进程有哪些事情发生了。信号机制经过 POSIX 实时扩展后,功能更加强大,除了基本通知功 能外,还可以传递附加信息。 信号事件的发生有两个来源:硬件来源(比如我们按下了键盘或者其他硬件故障);软 件来源,最常用发送信号的系统函数是 kill、raise、alarm、setitimer 和 sigqueue 函数,软件 来源还包括一些非法运算等操作。 进程可以通过 3 种方式来响应一个信号。 (1)忽略信号 即对信号不做任何处理,其中,有两个信号不能忽略:SIGKILL 及 SIGSTOP。 (2)捕捉信号 定义信号处理函数,当信号发生时,执行相应的处理函数。 (3)执行缺省操作 Linux 对每种信号都规定了默认操作,如表 10.5 所示。