代码在底部。
第207行的send()命令本身可以正常工作。但是,当我在第218行添加send()命令时,第一个命令失败-给出错误“ Bad address”。我已经确认第二个send()命令实际上并未执行。
我在这里完全迷路了...
答案 0 :(得分:1)
您似乎使用BUFFER_SIZE
作为发送数量来创建未定义的行为,因为这不太可能是两个字符串的长度。添加第二个send()
调用可能会更改字符串的内存布局,这会导致您得到错误。
应该是:
send(newsock_fd, "No such command in history", sizeof "No such command in history", 0);
如果您不想发送结尾的空字节,请从sizeof
中减去1。