2009-11-19 33 views
0

我有一個客戶端 - 服務器程序,在服務器端:Linux的插座值

sockListen = socket(PF_INET, SOCK_STREAM, 0); 

socketListen似乎總是等於3.爲什麼? 0,1或2怎麼樣? Linux中套接字的值範圍是多少?

+5

我可能是完全錯誤的,但我認爲Linux提供整型文件句柄,0通常是STDIN,1是STDOUT,2是STDERR。所以你給出的第一個句柄就是3.需要一個真正知道的人來澄清。 – 2009-11-19 08:37:39

回答

11

0,1和2分別是stdin,stdout和stderr。 3是下一個可用的。如果你創建了另外一個,或者打開了一個文件等,它會得到4.等等等等。

但是你不應該依賴這一點。編寫應用程序將整數視爲不透明對象。只將它們與值進行比較,看它們是否爲負值(表示錯誤)。

6

返回值是一個文件描述符。文件描述符0,1和2已經打開。 (分別是stdin,stdout和stderr)