这行代码做什么
send(4, "test\n", 15, 0);
如果代码中没有定义套接字?
答案 0 :(得分:6)
可能会失败,出现EBADF
错误(在errno
中)。
有关更多可能的错误值,请参阅manual page。
请注意,可以成功,如果之前有代码设置了一个带有硬编码描述符值4
(第一个参数)的套接字。有关尝试这种方法的一种方法,请参阅dup()
函数。
另请注意,它可能是父进程进行该设置,因此它甚至可能在源文件中不可见,但只是默默地假设。
最后请注意由于在提供的缓冲区外读取而导致的未定义行为(字符串长度不是15个字符)。这是非常可疑的代码。