Printf打印旧缓冲区 - C.

时间:2014-10-21 16:32:56

标签: c printf

我正在创建服务器/客户端。 clent向服务器发送消息,将其存储到文件中。比客户端可以读取此消息。 所以,我只使用以下函数(加上绑定等):fgets,read(用于从socket和file读取)write(写入文件/ socket)。并打印printf。

奇怪的是,当我调用printf时,它会打印出一个旧文本。因此,例如,如果我决定删除所有消息,我将从服务器接收类似"文件已删除"的字符串。然后在下面的操作中,当出现printf时,它会打印出desider内容加上前一个pessage的一部分,例如" file dele"。这怎么可能?我应该在我的代码中查看什么?我没有使用像fflush(stdout);。

这样的东西

2 个答案:

答案 0 :(得分:1)

你应该检查正确的' \ 0'终止。

答案 1 :(得分:-1)

尝试在开始和结束时使用带有“\ n”的printf(),即printf(“ \ n ***** ***** ur data ***** \ n ”); 要么 使用printf(“\ n”);在你的块结束,以便在你开始打印新的之前打印所有内容。