2009-11-19 64 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)