SIGPIPE並產生乙個訊號處理

2021-09-07 01:42:08 字數 1188 閱讀 5904

閱讀tcp某物,知道server並關閉sockfd當寫兩次,會產生sigpipe訊號,假如不**,預設將掛起server

弄個小樣本試驗:

#include #include #include #include #include #include #include #include #include #include #include #include #include #define err_exit(m) \

do while(0)

void handle(int arg)

int main(int argc, const char *argv)

return 0;

}

client使用telnet連線

發現:當client關閉後,server端還會寫兩次後。就會收到sigpipe訊號,興許繼續會收到此訊號

telnet localhost 8888

--》client:

syswj@host ~]$ telnet localhost 8888

trying ::1...

telnet: connect to address ::1: connection refused

trying 127.0.0.1...

connected to localhost.

escape character is '^]'.

hello

hello

hello

^]telnet> connection closed.

server資訊:

➜  mianshi git:(master) ✗ ./a.out 

client

hello

hello

hello

hello //-》對方會傳送乙個rst復位報文

hello

sigpipe  

hello

sigpipe //-->是因為write導致的

hello

sigpipe

hello

sigpipe

^c

能夠看到是在client關閉後,再傳送 第2個資訊後才收到的sifpipe訊號

興許傳送仍然會收到sigpipe訊號

產生乙個隨機數組,並判斷哪些數是素數

判斷隨機整數是否是素數 產生100個0 999之間的隨機整數,然後判斷這100個隨機整數哪些是素數,哪些不是?並把素數和合數分別放到陣列中 public class primenumber 合數函式陣列array2 else 列印所有素數 system.out.println n列印所有素數 for...

乙個應用程式產生乙個訊息佇列嗎

一般來講,乙個應用程式對應唯一的乙個程序號,該程序號對應的資源 建立的時間 記憶體等,都是一一對應的,該程序產生的訊息也是唯一的,不會跟其他應用程式衝突。應用程式需要跟核心 或稱系統 進行互動,那麼就要傳遞訊息,就有訊息管理機制。應用程式產生的訊息,會加入系統的訊息佇列當中,根據優先順序管理 排程等...

乙個簡單的子集產生演算法

在做關聯規則挖掘模組的時候,由頻繁項集產生關聯規則,需要使用到子集產生的演算法。比如 char a 集合a中,產生所有a的子集,這些。在openminer的關聯模組實現之處,我考慮的方法和人們思考產生子集的方法型別,既是先產生所有的單個元素的子集,然後產生2個元素的子集,然後3個的,一直到n個元素的...