我正在创建服务器/客户端。客户端将消息发送到服务器,服务器将其存储到文件中。比客户端可以阅读此消息。
因此,我仅使用以下功能(加上绑定等):fgets,读取(均用于从套接字和文件读取),写入(在文件/套接字上写入)。和printf一起打印。
奇怪的是,当我调用printf时,碰巧它会打印旧文本。因此,例如,如果我决定删除所有消息,那么我将从服务器接收诸如“文件已删除”之类的字符串。然后,在以下操作中,当有一个printf时,它会打印出desider内容以及以前的消息的一部分,例如“ file dele”。这怎么可能?我应该在代码中输入什么?我会不使用fflush(stdout);之类的东西而正确。
最佳答案
您应检查正确的'\ 0'终止。
关于c - Printf打印旧缓冲区-C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26491718/