#include #include void setupsignal()}int main(int argc, char *argv)
return 0;
}
測試方法:
1.執行signal程式
通過另外的乙個linux終端檢視程式使用的pid
ps -ef|grep signal
root 4234 3124 93 13:02 pts/3 00:00:06 ./signal
傳送訊號
kill -sigpipe 4234
可以看到signal程式不會退出
2.將main函式中setupsignal();行注釋掉編譯
執行signal程式
通過另外的乙個linux終端檢視程式使用的pid
ps -ef|grep signal
root 4253 3124 99 13:03 pts/3 00:00:02 ./signal
kill -sigpipe 4253
可以看到signal程式退出了
忽略SIGPIPE訊號的方法
行到水窮處,坐看雲起時 在tcp程式設計時,如果向乙個已經收到rst的套接字寫資料,系統會給程序傳送sigpipe訊號,如果不處理該訊號的話,程序的預設動作是退出,可以用如下方法不讓系統傳送此訊號 令send 函式的最後乙個引數為msg nosignal。函式原型 ssize t send int ...
gdb中忽略訊號處理 SIGPIPE
gdb除錯網路程式時,會遇到sigpipe資訊,預設gdb會把程式停下來,即使程式使用signal sigpipe,sig ign 來忽略訊號。用handle命令設定一下預設的signal的處理行為即可 在gdb模式下執行下面的命令 handle sigpipe nostop print 如果連資訊...
C語言 C語言之continue
c語言迴圈 c 語言中的continue語句有點像break語句。但它不是跳出該迴圈語句,continue是跳過本次迴圈直接開始下一次迴圈的。在for迴圈裡,continue會跳過本次迴圈,但是自增語句仍然會執行,而在while和do while語句裡嘖是跳過迴圈重新執行判斷語句 課堂作業內容為 輸...