在linux下寫socket的程序的時(shí)候,如果嘗試send到一個(gè)disconnected socket上,就會讓底層拋出一個(gè)SIGPIPE信號。
這個(gè)信號的缺省處理方法是退出進(jìn)程,大多數(shù)時(shí)候這都不是我們期望的。因此我們需要重載這個(gè)信號的處理方法。調(diào)用以下代碼,即可安全的屏蔽SIGPIPE:
//忽略SIGPIPE 信號
signal(SIGPIPE,SIG_IGN);
如果用GDB進(jìn)行調(diào)試,則
在RUN之前,加上
handle SIGPIPE nostop print
歡迎光臨 Chinaunix (http://72891.cn/) | Powered by Discuz! X3.2 |