回答
坦白地說,據我所知,只需看man
頁面並使用常識。即使呼叫沒有指定EINTR,也要考慮它的作用。我可能是錯的,但在我看來,POSIX庫中的每個調用默認都會阻塞,並且只會在非阻塞模式下執行(通過各種標誌),但我還沒有看到一個解除阻塞的調用默認情況下(這將做任何事情,但取消阻止)。
作爲聲明'POSIX庫中的每個調用默認都會阻塞'的反例,getpid()系統調用不會被阻塞;期。 –
'man'頁面沒有提供足夠的信息,我不相信我的常識。例如'socket(2)','shutdown(2)','fnctl(2)'和命令F_SETFL等,這就是爲什麼我想要一個全面的文檔告訴我這一點。 –
@JonathanLeffler:但它也不是不同步的。它確實返回它的作業返回的值,這意味着它不是非阻塞的。這不像你調用'getpid()'然後執行其他代碼,然後得到結果。 – Linuxios
- 1. 追蹤C阻塞系統調用
- 2. Qt - 系統級調用阻塞的QThreads
- 3. 如何使阻塞/同步調用進入Akka actor系統?
- 4. 我想讓接受系統調用爲非阻塞。我如何使接受系統調用爲非阻塞?
- 5. 使用fork的C++程序中的非阻塞系統調用
- 6. 被阻止的系統調用不會讓SIGKILL終止進程
- 7. 阻塞來電android系統
- 8. posix線程阻塞信號並解除阻塞
- 9. 阻塞和不阻塞子進程調用
- 10. Python子進程調用阻塞
- 11. 這些功能做哪些系統調用?
- 12. 如何在Ruby中創建非阻塞系統調用?
- 13. 是狀態機中的阻塞系統調用呼叫事件
- 14. 在FIFO上打開系統調用不阻塞?
- 15. 是否有任何系統調用阻塞內存
- 16. 哪個進程在Linux內核中調用系統調用?
- 17. 如何在python中進行分叉或非阻塞系統調用
- 18. 在進程中調用阻塞多進程pool.map
- 19. 阻塞的線程是否會導致進程阻塞?爲什麼和如何?
- 20. Linux阻止系統調用
- 21. 系統重疊標籤阻塞DialogFragment
- 22. 非阻塞版本的系統()
- 23. AVAudioSession阻塞系統的音頻
- 24. Qt應用程序阻塞系統關機
- 25. 單進程阻塞隊列
- 26. 我必須在C程序中使用POSIX系統調用包含哪些內容?
- 27. PHP呼叫系統()和寫入命名管道不會阻塞
- 28. Delegate.BeginInvoke回調阻塞調用線程?
- 29. WCF阻塞調用
- 30. 使用php守護進程和非阻塞fopen進行可擴展中間數據存儲系統
我沒有一個清單,但我懷疑這不是必要的條件。例如,'unlink(2)'不會將'EINTR'指定爲可能的錯誤,但它可能會阻塞(在磁盤訪問上)。可能有許多其他人喜歡它。 – Celada