问题标签 [fflush]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
14507 浏览

oracle - Oracle PL/SQL UTL_FILE.PUT 缓冲

我正在从 Oracle 存储过程编写一个 > 7MB 的大文件,并且要求在每条记录的末尾没有行终止字符(没有回车/换行)。

我已经使用 UTL_FILE.PUT 编写了一个存储过程,并且我正在使用 UTL_FILE.FFLUSH 跟踪对 UTL_FILE.PUT 的每次调用。尽管我正在进行 FFLUSH 调用,但一旦我写入的内容超过缓冲区大小(设置为最大 32767),此过程就会出现写入错误。如果我用 PUT_LINE 调用替换 PUT 调用,该过程可以正常工作。

没有换行符就不能写超过缓冲区大小吗?如果是这样,是否有解决方法?

0 投票
3 回答
6645 浏览

c++ - 在 C++ 上使用 fflush

有人可以帮我fflush在 C++ 中使用吗

这是C中的示例代码

这是获取交互式输入的程序。

我通常使用cincout所以可以不使用printfandscanf吗?

0 投票
2 回答
117 浏览

c - 丝网印刷令人困惑?

我的代码是:

输出是:

似乎 system("pwd") 先打印,然后再打印 argv[0]。为什么?如果我添加如下语句:

输出是:

可以正常使用,为什么?

0 投票
3 回答
4454 浏览

c - 没有 fflush (stdout) 输出不打印

我不明白为什么有时我需要使用fflush()而有时不需要。

我的程序目前正在发生段错误,我正在使用打印语句对其进行调试。当程序段错误时,不会stdout自动刷新其缓冲区?

0 投票
0 回答
4416 浏览

windows - 使用管道重定向时,Windows 控制台程序标准输出被缓冲

我有一个用 QT/c++ 编写的长期运行的服务器程序(比如程序 A)。该程序不是那么稳定,所以我决定编写一个 python 脚本以在它崩溃时重新启动它。问题是程序可能启动失败(如果我给它一个正在使用的端口),打印错误然后就挂在那里而不退出,所以我必须监视程序的标准输出并在启动失败时将其终止。

这是我最终代码的一部分(其实这没关系,你可以忽略它):

但我发现我无法从子进程的标准输出中读取任何内容,readline 方法只是阻塞在那里,如果我杀死 A 进程,python 脚本就会退出而没有任何输出。一开始,我以为是子进程模块的问题,但经过一番测试,我发现不是。如果我用其他一些 Windows 控制台程序(例如 ping -t)替换 A.exe 命令行,则一切正常。所以我认为这可能是A程序的问题。

幸运的是,我有 A 的源代码,这里有一段处理输出:

经过一番搜索,我添加fflush(stdout);到这段代码的末尾,重建程序,现在它可以工作了

所以我的问题是我还是看不懂,原来的A程序代码有什么问题?在没有强制刷新的情况下,它可以在程序启动后立即在 Windows 控制台中正确打印这些字符串。为什么在输出上使用管道时输出会被缓冲?我读到在标准 c 实现中,输出将在换行符上自动刷新,但在我的情况下为什么不呢?这是windows问题还是编译器问题?

A程序是用QT/C++编译的,QT版本是4.7.4(x32),C++编译器是QT自带的ming32 g++(GCC 4.4.0),所有测试都是在win7x64平台上做的,我的python版本是2.7.2

0 投票
3 回答
10135 浏览

c - fflush(stdin) 函数不起作用

我似乎无法弄清楚这段代码有什么问题:

#################### 编辑

应用 templatetypedef 的解决方案,程序现在等待用户输入 customer_name。但是,输入带有空格的字符串会导致错误,并且程序假定空格后面的单词是为下一个提示输入的。

0 投票
2 回答
676 浏览

c - 这是缓冲区溢出吗?

如果我的程序表现得像它应该的那样,真的很困惑。这不是家庭作业,只是我正在编写的一个有趣的三月疯狂预测程序。

出于好奇,我输入了一个超过 20 个字符的团队名称,它完全跳过了第二个打印语句。我是否在防止缓冲区溢出?是否由用户决定不要放入巨大的东西?我需要flush语句吗?

这是输出:

0 投票
2 回答
137 浏览

c - 读取的文件和写入的文件不相同

我正在尝试将大约 3KB 的文件的内容读入缓冲区,然后将缓冲区的内容写入另一个文件。写入数据的文件仅包含写入其中的一部分数据。它的大小约为 1KB。剩下的数据怎么写?

fwrite 之后的 fflush 会为我这样做吗?

0 投票
1 回答
935 浏览

c - fwrite() 和文件损坏

我正在尝试将 wchar 数组写入 C 中的文件,但是存在某种损坏和不相关的数据,例如像这样的变量和路径

与正确的数据一起写入文件(示例)我已经确认缓冲区以空值结尾并包含正确的数据。

这是我的代码:

这可能是什么原因造成的?

0 投票
2 回答
19337 浏览

c - fflush(stdin) ANSI C

我是 ANSI C 的初学者,我有一个问题,这可能是个愚蠢的问题,我很抱歉。

这是我学习scanf函数的第二个程序。我的问题是:我知道printfscanffflushstdingetchar是在stdio.h中定义的,但只有当我使用fflush(stdin)时我必须输入#include< stdio.h >,但是当使用任何其他方法时我可以删除该行#include。