Linux C 網絡編程中 sendto 返回 -1,errno = 9。
errno 9 對應 EBADF:Bad file descriptor(無效的文件描述符)。
socket() 失敗未檢查)close() 或邏輯錯誤提前關閉)sendto 的 socket 參數錯誤(如傳了 listen_sock 而非 conn_sock)// 代碼中直接打印錯誤描述
#include <string.h>
#include <errno.h>
if (sendto(...) < 0) {
fprintf(stderr, "sendto 失敗: %s (errno=%d)\n", strerror(errno), errno);
// 輸出: sendto 失敗: Bad file descriptor (errno=9)
}
socket() 返回值是否 > 0strace -p 追蹤系統調用序列