在所有訊號都被阻塞的進程上可以有多少個訊號排隊?如果我使用的sigqueue()
次數超過該限制怎麼辦?這些信號不會排隊嗎?我會收到錯誤嗎?
答案1
與 ulimit
$ ulimit -a |grep signals
pending signals (-i) 62384
與普通C
$ cat<<EOF > siglimit.c
#include <stdio.h>
#include <unistd.h>
int main() { printf("%ld\n", sysconf( _SC_SIGQUEUE_MAX)); return 0; }
EOF
$ gcc siglimit.c && ./a.out
62384
當然,您可能會得到 62384 以外的值,這是我在系統上得到的值。