我创建了信号。其中一人打印“1”20次。另一个打印“2”20次。我希望这些信号依次打印他们的数字:1,2,1,2 ...但程序只打印“1”。有人可以帮我解决这个问题吗?如何发送信号?
Q
如何发送信号?
0
A
回答
2
运行此代码并查看将SIGUSR1或SIGUSR2发送到打印的PID时的内容。
#include <stdio.h>
#include <signal.h>
void handler1(int signal)
{
printf("Foo\n");
}
void handler2(int signal)
{
printf("Bar\n");
}
int main()
{
printf("PID: %d\n", getpid());
sigset(SIGUSR1,handler1);
sigset(SIGUSR2,handler2);
while (1);
return(0);
}
相关问题
- 1. 如何发送USR2信号?
- 2. 如何向线程发送无信号?
- 3. 如何发送DTMF信号的Symbian S60
- 4. 如何将信号发送到PCI卡?
- 5. 如何从python程序发送信号?
- 6. 如何从nodejs发送POSIX信号
- 7. 如何发送信号到套接字?
- 8. 如何在java中发送ipc信号
- 9. 如何向Testcontainers发送信号?
- 10. 如何从javascript发送信号到qml
- 11. 如何从代表发送信号
- 12. 如何发送和陷阱发送到PID的信号,用C
- 13. 发送控制信号?
- 14. QTreeWidget发送信号doubleClicked
- 15. 发送iOS游戏信号
- 16. pthread_kill()不发送信号到
- 17. 发送信号和pselect?
- 18. C pthreads和信号发送
- 19. java线程信号发送
- 20. 发送信号给线程
- 21. 信号发送器转换
- 22. JAIN-SIP WebRTC信号发送
- 23. 从JVM发送POSIX信号
- 24. 发送信号到进程
- 25. &符号在短信 - 短信发送android
- 26. DBus Glib发送信号 - 没有信号被发射
- 27. 如何发送信号到孩子的孩子从父母收到信号后
- 28. fork和信号:如何从父进程发送信号到特定子进程
- 29. java如何发送信息?
- 30. 如何发送短信
那么,你的循环和你的信号处理程序之间有什么联系? – Kotshi
我的意思是,你使用sigset来设置你什么都不做的信号处理程序,然后你使用main函数中的printf()。这些与你正在捕捉的信号无关...... – Kotshi
sigset()将函数定义为信号处理函数。在使用'sigset(SIGTERM,handler)之后;'发送给你程序的每个SIGTERM将执行'handler()'而不是杀死你的程序。 – Kotshi