Wie viele Signale können bei einem Prozess in die Warteschlange gestellt werden, bei dem alle Signale blockiert sind? Was passiert, wenn ich sigqueue()
mehr Signale als dieses Limit verwende? Werden diese Signale nicht in die Warteschlange gestellt? Bekomme ich eine Fehlermeldung?
Antwort1
Mit ulimit
$ ulimit -a |grep signals
pending signals (-i) 62384
Mit einfachem 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
Sie können natürlich auch einen anderen Wert als 62384 erhalten, den ich auf meinem System habe.