我創建了信號。其中一人打印「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