(在 C 套接字編程中,poll用于管理 fd 及其事件)
對于從呼叫回傳的資料流套接字accept(),事件 POLLHUP 和呼叫 recv(fd, ...) 時得到 0 有什么區別?它們似乎都表明連接從另一端關閉,但我想知道兩者之間是否存在任何技術差異。
uj5u.com熱心網友回復:
POLLHUPin reventsof astruct pollfd告訴您管道或套接字的另一端是否已關閉。這意味著您不能在沒有得到 a 的情況下寫入描述符(如果它可以寫入)SIGPIPE,但可能仍然有等待讀取的資料(如果它可以讀取)。讀取完所有剩余位元組后,函式recv(2)將read(2)回傳 0。
因此,兩者都POLLIN可以POLLHUP同時設定,但不能POLLOUT和POLLHUP- 這兩者是互斥的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/492893.html
