Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 每秒最大信号_Unix_Ipc_Signals - Fatal编程技术网

Unix 每秒最大信号

Unix 每秒最大信号,unix,ipc,signals,Unix,Ipc,Signals,我想知道一个程序每秒能捕获多少信号(或任何时间比)。 问题是,我希望每8个接收8个信号来填充一个字符(sigusr1表示“0”,sigusr2表示“1”),当我不使用类似睡眠的函数时,程序发送“用户信号1或2”,然后退出 有没有办法确定一个程序能捕获多少信号? 在我的测试中,它取决于序列持续时间(对于100位数字,他不会错过任何一位,但超过500位,他开始错过其中一些数字,我在每次传输之间使用usleep(1000) 谢谢你 编辑:抱歉发送得太早。这取决于许多变量——硬件、由于其他软件运行而导致

我想知道一个程序每秒能捕获多少信号(或任何时间比)。 问题是,我希望每8个接收8个信号来填充一个字符(sigusr1表示“0”,sigusr2表示“1”),当我不使用类似睡眠的函数时,程序发送“用户信号1或2”,然后退出

有没有办法确定一个程序能捕获多少信号? 在我的测试中,它取决于序列持续时间(对于100位数字,他不会错过任何一位,但超过500位,他开始错过其中一些数字,我在每次传输之间使用usleep(1000)

谢谢你


编辑:抱歉发送得太早。

这取决于许多变量——硬件、由于其他软件运行而导致的机器负载等。无法在所有情况下调整睡眠时间使其可靠。外部信号本质上是异步的


基本上,你是在以一种他们不打算使用的方式使用信号。对于批量数据的通信,有更好的IPC选择,从简单的管道到在套接字上分层的D-Bus,具有复杂的会合、多播和过滤功能。

使用信号来传输这样的数据是一个可怕的想法。你可以告诉你r我说过的教学人员-但实际上这样做可能不会赢得很多朋友。信号是用于罕见事件的,而不是高密度通信。谢谢你的建议,但我真的很期待使用信号如果你遇到可靠性问题,将其视为嘈杂的信道,并为er制定一个协议ror纠正丢失的信号(位)或错误解释的位(可能是由于丢失信号引起的),也许是一种向发送方确认接收器正在处理的方式。谢谢你,我想我只是要在通信中使用令牌,以避免我采取另一种解决方案!