これは、私が勉強している試験の質問の例です。質問は、コードの何が問題になっているのかということです。私はそれがalarm(3)かもしれないと思っています、それがwhileループに飛び込む原因となる遅延?あるいは、そのSIGALRMを使用して睡眠から目覚めるべきではないかもしれませんが、それはここでは有効なポイントではないと思います。フィードバックをいただければ幸いです。この種のものに関連する関連情報を見つけるのは非常に難しいと思います。
static void foo(int signo) {
printf("Nudge-nudge\n");
alarm(3);
}
int main() {
sigset_t set;
sigemptyset(&set);
sigset(SIGALRM, foo);
alarm(3);
while (1) {
sigsuspend(&set);
}
return (0);
}