我正在尝试调用一个看起来不起作用的函数。所以我添加了一些printf(),这就是结果。
if (rc > 0) {
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
printf("ListenPort() got this: %s",buffer);
useEvent("maybe this works"); //ONLY a print statement.
printf("Test");
}
在第一次调用此函数时,我只得到:
ListenPort() got this: A
我接到第二个电话:
useEvent() Test ListenPort() got this: A
来自PREVIOUS呼叫的两个打印状态和来自新呼叫的1个打印状态。这意味着以某种方式useEvent()不会运行,直到第二次调用或类似的东西。
我希望您不需要更多代码,但请告诉我,我会发布它。
答案 0 :(得分:3)
默认情况下,stdout是行缓冲的。在fflush(stdout);
块的末尾添加if
。