alarm的一種用法。

2021-07-08 17:13:56 字數 969 閱讀 5544

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,上面的程式...