alarm函式可以用於防止讀阻塞。
但如果系統呼叫是自動重啟動的,當從sigalrm訊號處理程式返回時,read並不被中斷。在這種情形下,設定時間限制不起作用。
一、源**:
cat -n 10_10.c
1 #include "apue.h"
23 static void sig_alarm(int sig_no);
45 int main()
6 13
14 alarm(10);
1516 if ((n=read(stdin_fileno,line,maxline)) < 0)
17 err_sys("read error");
1819 alarm(0);
2021 write(stdout_fileno,line,n);
22 exit(0);
23 }
2425
2627 static void sig_alarm (int sig_no)
28
2.編譯及執行結果:
gcc -wall -ggdb3 10_10.c -o purpose_of_alarm
in file included from apue.h:132,
from 10_10.c:1:
error.c: in function `err_doit':
error.c:121: warning: implicit declaration of function `vsnprintf'
error.c:123: warning: implicit declaration of function `snprintf'
./purpose_of_alarm
read error: interrupted system call
Oracle update的一種用法
用於大資料量的更新,效率比較高,括號內的select語句為虛擬表,要求where欄位必須是主鍵或唯一索引 b.customer id和a.customer id 記錄一下,以後用得上。例子 update select a.city name,b.city name as new name from ...
中文編碼的一種用法
這裡通過乙個測試某些ip位址是否為特定 的例子來說明。我們假設該 的編碼用的是gb2312,並通過獲取該 的title作為檢測依據。usr bin env python encoding utf 8 略去獲取網頁的 re.ignorecase title 論壇標題 m re.search title...
using的另一種用法
mail zsc771120 yahoo.先看下面的程式碼 using form arg arg new form arg this.ip,this.port,this.limit 我以前經常使用 using system 或者 using system.io 等加入新namespace,上面的程式...