【发布时间】:2014-01-21 03:46:46
【问题描述】:
这可能看起来像一个愚蠢的问题,但我在家里没有比这更好的事情了。一直在做一个项目。我写了这段代码,但无法理解输出。谁能解释一下-
int MasterSocket[3];
int i = 0;
for(i=0; i<3; i++)
{
MasterSocket[i] = socket(AF_INET , SOCK_STREAM , 0);
}
for(i=0; i<3; i++)
{
printf("\n%d---\n", MasterSocket[i]);
}
输出-
ansh@daweed69-laptop:~/Ubuntu One/workspace/multiConnectionSockets/Debug$ ./multiConnectionSockets
3---
4---
5---
[来自 cmets 的更新:]
为什么描述符输出必须从 3 开始? 0、1 和 2 是预定义的!?!?
【问题讨论】:
-
实际上,我必须阅读文档 才能记住...
man socket:成功时,将返回新套接字的文件描述符。出错时,返回 -1,并适当设置 errno。 -
但是为什么描述符输出必须从 3 开始呢?
0, 1 and 2是预定义的!?!? -
是的。
stdin、stdout、stderr -
是的,0、1 和 2 是预定义的。请阅读 socket() 的文档。
标签: c linux sockets serversocket