我創建了信號。其中一人打印「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. 如何從javascript發送信號到qml
- 2. 如何向Testcontainers發送信號?
- 3. 如何向線程發送無信號?
- 4. 如何發送DTMF信號的Symbian S60
- 5. 如何從代表發送信號
- 6. 如何從nodejs發送POSIX信號
- 7. 如何將信號發送到PCI卡?
- 8. 如何從python程序發送信號?
- 9. 如何發送和陷阱發送到PID的信號,用C
- 10. 發送信號給線程
- 11. 發送控制信號?
- 12. 從JVM發送POSIX信號
- 13. 發送iOS遊戲信號
- 14. pthread_kill()不發送信號到
- 15. 發送信號到進程
- 16. C pthreads和信號發送
- 17. 信號發送器轉換
- 18. DBus Glib發送信號 - 沒有信號被髮射
- 19. fork和信號:如何從父進程發送信號到特定子進程
- 20. 如何發送信號到孩子的孩子從父母收到信號後
- 21. 如何發送短信
- 22. java如何發送信息?
- 23. Android如何發送彩信
- 24. 如何不發送短信保存發送郵件後發送短信從SmsManager
- 25. 在等待超時時發送信號燈信號
- 26. 發送USR2信號後忽略信號處理程序
- 27. Qt信號插槽:信號已發送,但未插入插槽
- 28. android如何發送短信和彩信?
- 29. 如何發送「+」號(加,正)
- 30. 從django-admin命令發送django信號?
那麼,你的循環和你的信號處理程序之間有什麼聯繫? – Kotshi
我的意思是,你使用sigset來設置你什麼都不做的信號處理程序,然後你使用main函數中的printf()。這些與你正在捕捉的信號無關...... – Kotshi
sigset()將函數定義爲信號處理函數。在使用'sigset(SIGTERM,handler)之後;'發送給你程序的每個SIGTERM將執行'handler()'而不是殺死你的程序。 – Kotshi