我正在嘗試編寫一個程序,它使用tgkill將信號發送到特定的線程,但是每當我使用gcc編譯它時,我都會收到一個關於'tgkill 」。我試着用-lpthread編譯,但沒有幫助。我使用Google搜索並且不能提供任何答案。我如何得到它?無法編譯調用tgkill的程序
回答
從tgkill()
手冊頁:
glibc不提供 這些系統調用的封裝。使用系統調用(2)致電 。
謝謝,我閱讀了聯機幫助頁,但沒有閱讀整個事情......經驗教訓。 – 2011-03-22 05:38:37
正如在另一個答案中指出的,glibc不提供tkill()
或tgkill()
的包裝。您可以使用pthread_kill()
。
pthread_kill不是tgkill的直接替換,特別是,pthread_kill使用的pthread ID與tgkill使用的輕量級進程id不同。使用系統調用(SYS_tgkill) – 2017-02-01 04:25:38
你可能想用這樣的東西代替。
tgid = getpid();
tid = gettid();
syscall(SYS_tgkill,tgid,tid,signalname));
gettid()不幸的是沒有包裝 – spiffman 2015-03-18 05:24:59
- 1. C++程序無法編譯
- 2. 無法編譯C程序
- 3. 無法編譯ios應用程序
- 4. NativeScript sampleGroceries應用程序無法編譯
- 5. 無法使用_beginthreadex編譯C++程序
- 6. 無法讓Xcode應用程序編譯
- 7. 無法編譯應用程序
- 8. 無法使用AVX512編譯C++程序?
- 9. Cygwin無法編譯我的程序
- 10. 無法編譯簡單的C++程序
- 11. 無法編譯qc-usb驅動程序?
- 12. GNUmakefile無法編譯bison和flex程序
- 13. 無法編譯鏈接列表程序
- 14. gcc-4.8無法編譯測試程序?
- 15. 無法獲取編譯程序
- 16. 無法編譯Lex和Yacc程序
- 17. 無法編譯油嘴程序
- 18. 無法更新應用程序:無法編譯JSP文件
- 19. AppEngine:無法更新應用程序:無法編譯jsp文件
- 20. 編譯調用子程序的錯誤
- 21. 編譯C DLL無法設置從ASP.NET應用程序調用時的指針
- 22. 使用GNUStep無法編譯客觀的c應用程序
- 23. 無法編譯使用gSOAP的Qt Symbian應用程序
- 24. 無法安裝使用apktool重新編譯的應用程序?
- 25. 調試編譯.net應用程序
- 26. 使用nmake編譯調試C程序
- 27. startDrag方法已棄用,無法編譯程序
- 28. 調用用g ++編譯的庫的C/C++函數,用gcc編譯的程序
- 29. XCode:空應用程序無法編譯,資產目錄編譯器錯誤
- 30. Xamarin更新後無法編譯的Xamarin應用程序
爲什麼現在要使用舊版的linux-libc-only函數?因爲您提到了pthread庫,所以POSIX線程是要走的路,而且您可能會對它有所支持。但是,如果你的代碼大部分已經完成,請嘗試通過syscall(2)調用它。 – MattBianco 2011-03-21 12:59:26