之后打印一个电话

时间:2013-03-08 08:42:32

标签: c debugging printf

我正在尝试调用一个看起来不起作用的函数。所以我添加了一些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()不会运行,直到第二次调用或类似的东西。

我希望您不需要更多代码,但请告诉我,我会发布它。

1 个答案:

答案 0 :(得分:3)

默认情况下,stdout是行缓冲的。在fflush(stdout);块的末尾添加if