C发送套接字而不定义套接字

时间:2013-05-21 11:45:14

标签: c linux sockets

这行代码做什么

send(4, "test\n", 15, 0);

如果代码中没有定义套接字?

1 个答案:

答案 0 :(得分:6)

可能会失败,出现EBADF错误(在errno中)。

有关更多可能的错误值,请参阅manual page

请注意,可以成功,如果之前有代码设置了一个带有硬编码描述符值4(第一个参数)的套接字。有关尝试这种方法的一种方法,请参阅dup()函数。

另请注意,它可能是父进程进行该设置,因此它甚至可能在源文件中不可见,但只是默默地假设。

最后请注意由于在提供的缓冲区外读取而导致的未定义行为(字符串长度不是15个字符)。这是非常可疑的代码。