0

这行代码是做什么的

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

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

4

1 回答 1

6

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

有关更多可能的错误值,请参阅手册页

请注意,如果在它之前有代码设置具有硬编码描述符值(第一个参数)的套接字,它可能会成功。4请参阅该dup()功能以了解尝试执行此操作的一种方法。

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

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

于 2013-05-21T11:47:48.857 回答