小甲鱼 发表于 2017-7-13 18:46:50

fflush -- 将缓冲区内的数据写入指定的文件中

fflush 函数文档

函数概要:

fflush 函数用于将缓冲区内的数据强制写入指定的文件中。


函数原型:

#include <stdio.h>
...
int fflush(FILE *stream);

参数解析:


参数含义
stream1. 该参数是一个 FILE 对象的指针,指定待更新的文件对象

2. 如果该参数是 NULL,则更新所有打开的文件


返回值:

1. 如果函数调用成功,返回值是 0;

2. 如果函数调用失败,返回 EOF 并设置 errno 为指定的错误。


演示:

#include <stdio.h>
#include <string.h>

int main(void)
{
      char buff;

      memset(buff, '\0', sizeof(buff));

      // 指定 buff 为缓冲区,_IOFBF 表示当缓冲区已满时才写入 stdout
      setvbuf(stdout, buff, _IOFBF, 1024);

      fprintf(stdout, "This is bbs.fishc.com\n");
      fprintf(stdout, "This output will go into buff\n");

      // fflush强制将上面缓存中的内容写入stdout
      fflush(stdout);

      fprintf(stdout, "this will appear when progream\n");
      fprintf(stdout, "will come after sleeping 5 seconds\n");

      sleep(5);

      return 0;
}



小甲鱼 发表于 2017-7-14 11:18:16

#argv.py

import sys
print(sys.argv)

qq783369750 发表于 2017-8-8 22:28:53

有点没看懂,第一次接触fflush是在学指针的时候{:10_245:}

瓜皮1 发表于 2021-3-2 12:06:12

为什么用过fflush后再输出的内容都是乱码{:10_266:}

额外减小 发表于 2023-1-4 14:52:13

小甲鱼老师,我想问一个问题。
就是说,如果我不用fflush,让这些内容停在缓冲区里,程序结束时就会输出乱码。请问是为什么?谢谢{:10_256:}
页: [1]
查看完整版本: fflush -- 将缓冲区内的数据写入指定的文件中