dup
和dup2
函式(作為檔案重定向)
int dup(int oldfd);
int dup2(int oldfd, int newfd);
#include
int dup3(int oldfd, int newfd, int flags);
#include
#include
dup建立乙個新的檔案描述符,該檔案描述符和原有檔案描述符指向相同的檔案、管道或者連線。且返回值為系統當前可用最小整數值。呼叫失敗返回-1值。
cgi伺服器工作原理
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 int main(int argc,char **argv)
11 17 const char *ip=argv[1];
18 int port=atoi(argv[2]);
19 struct sockaddr_in address;
20 memset(&address,0,sizeof(address));
21 inet_pton(af_inet,ip,&address.sin_addr);
22 address.sin_port=htons(port);
23 address.sin_family=af_inet;
24 int sock=socket(af_inet,sock_stream,0);
25 assert(sock>=0);
26 int ret=bind(sock,(struct sockaddr*)&address,sizeof(address));
27 assert(ret!=-1);
28 ret=listen(sock,5);
29 assert(ret!=-1);
30 struct sockaddr_in client;
31 socklen_t client_len;
32 int connfd=accept(sock,(struct sockaddr*)&client,&client_len);
33 if(connfd<0)
34 printf("connect error is:%d!\n",errno);
35 else
36
42 close(sock);
43 return 0;
44 }
關閉標準輸出檔案描述符stdout_fileno(值為1),然後複製socket檔案描述符connfd。因為dump返回系統中可用最小檔案描述符,所以返回的實際值為1.這樣伺服器輸出到標準輸出的內容就會直接傳送到與客戶連線對應的socket上。這就是cgi伺服器的工作原理。
《python核心程式設計》序列型別小結2
1.當沒有傳入引數時,預設除去首尾空格 str hello,world str.strip hello,world 2.當傳入乙個字串為引數時,編譯器去除兩端相應的字元 字串引數中的每個字元 str saaaay yes yaaass str saaaay yes yaaass str.strip ...
daemon程式設計小結
一.daemon的特點 必須由root啟動。它是非互動式程式,所以沒有控制中斷,無須使用者輸入。不能控制終端,所以無任何輸出,因此無論是向stderr還是stdout都需做特別處理。通常作為程序組和會話的領導程序。父程序是init,因為真正的父程序fork以後就exit了,是由init繼承的孤兒程序...
Linux Module程式設計小結
1.makefile 使用makefile來編譯模組,不能直接使用gcc。實際使用的是當前活動核心模組的makefile來完成相關工作的。ifneq kernelrelease obj m hello.o calculate.o else kdir lib modules 2.6.18 53.el5...