102得票7回答
使用 fflush(stdin)

在快速谷歌搜索“fflush(stdin)”以清除输入缓冲区时,会出现许多网站警告不要使用它。但这正是我的计算机科学教授教我们做的。 使用fflush(stdin)有多糟糕?即使我的教授在使用它,并且似乎无瑕地工作,我真的应该避免使用它吗?

79得票1回答
在C语言中清空缓存

fflush()不应该用于刷新缓冲区,即使它是一个输出流吗? 它有什么用途?一般我们如何刷新缓冲区?

73得票6回答
fflush和fsync之间的区别

我以为fsync()会在内部执行fflush(),所以在流上使用fsync()是可以的。但是当在网络I/O下执行时,我得到了一个意外的结果。 我的代码片段:FILE* fp = fopen(file, "wb"); /* multiple fputs() calls like: */ fpu...

45得票5回答
一个程序能否同时在同一个文件指针(FILE*)上调用fflush()函数?

如果多个线程同时在相同的FILE*变量上调用fflush(),会发生什么不良情况(如未定义行为、文件损坏等)? 澄清:我不是指并发写文件,而是指并发刷新文件。 这些线程不会同时读取或写入文件(它们只在关键区域内一个接一个地写入文件)。他们只会在关键区域外部进行刷新,以便更快释放关键区域,让...

24得票8回答
我无法清空stdin。如何在C中清空stdin?

如何清空标准输入stdin? 为什么下面的代码片段无法正常工作?#include <string.h> #include <stdio.h> #include <malloc.h> #include <fcntl.h> int main() {...

18得票3回答
理解fflush()的必要性及其相关问题

下面是使用 fflush() 的示例代码:#include <string.h> #include <stdio.h> #include <conio.h> #include <io.h> void flush(FILE *stream); ...

15得票2回答
为什么在写入stderr之前需要使用fflush清空stdout缓冲区?

我正在阅读《UNIX网络编程:套接字API》这本书,并且在示例代码中,他们有一个包含以下行的错误处理函数:fflush(stdout); /* in case stdout and stderr are the same */ fputs(buf, stderr); fflush(st...

11得票5回答
在C语言中使用fgets()函数后清除输入缓冲区

#include <stdio.h> int main() { char name[10]; for(int i=0;i<=10;i++) { printf("Who are you? "); if(fgets(name,10,stdin)!=NU...

11得票1回答
文件何时被刷新?

我在Windows下有一个良好的旧的C FILE文件描述符,它用于由输出流将数据写入文件。我的问题很简单,但我找不到答案: 如果我不调用fflush,那么内容何时被刷新到磁盘上? 该流不断接收数据,并且似乎很经常刷新内容,但是什么是刷新的规则呢?

8得票4回答
从实时 tcpdump 抓取中提取唯一的 IP

我正在使用以下命令从实时tcpdump捕获中输出IP地址: sudo tcpdump -nn -q ip -l | awk '{print $3; fflush(stdout)}' >> ips.txt 我得到了以下输出。 192.168.0.100.50771 192.1...