recv 函数在调用之前挂起程序

recv function hangs the program before being called

假设我有

while(1){
    printf something
    printf something else
    recv(....);}

我知道 recv 应该等待发送的东西,所以挂起控制台是正常的,直到 then.But recv 在到达它的 line.For 示例之前挂起程序,如果我 运行 像这样的任何程序,它之前的两个 printfs 从未发生过

有人知道为什么会这样吗?

可能 printf 正在发生,只是控制台输出没有被刷新。如果你真的需要打印输出,你应该考虑使用fflush:http://www.cplusplus.com/reference/cstdio/fflush/.