将 setvbuf() 与 STDIN 流结合使用

2023-12-22

我正在编写一个小型 C 程序,它必须接受大于 4096 字节的输入流。

我确实找到了一个推荐使用的帖子设置vbuf() here:

使 fgets 在 Linux 上发出更长的 read() 调用 https://stackoverflow.com/q/3612363

我仍然很难让它发挥作用——这是我正在努力解决的代码片段:

int main(void) 
{ 
#define MAX_STRING_SIZE 7168

char input_string[MAX_STRING_SIZE];

printf( "Input: " );

setvbuf( stdin, NULL, _IONBF, 0 );

fgets( input_string, MAX_STRING_SIZE-1, stdin );

printf( "\n" );
printf( "%s", input_string );
} 

有人成功增加了这个输入缓冲区吗?

我的环境:带有 build-essential 包的 Ubuntu 10.10

Thanks!


现在你正在使用_IONBF, 意思是no缓冲。使用_IOFBF相反可能是一个好的开始(那就是full缓冲)。要增加缓冲区大小,您还需要将大缓冲区大小指定为第四个参数,例如:

setvbuf(stdin, NULL, _IOFBF, 16384);

这会动态分配缓冲区空间。根据情况,您可能希望将缓冲区传递给它:

char mybuffer[32768];

setvbuf(stdin, mybuffer, _IOFBF, sizeof(mybuffer));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 setvbuf() 与 STDIN 流结合使用 的相关文章

  • 为什么 C 程序使用 Scanf 给出奇怪的输出?

    我目前正在学习 C 编程 并且遇到了这个奇怪的输出 Program will try functionalities of the scanf function include
  • C# 中的 Stack<> 实现

    我最近一直在实现递归目录搜索实现 并且使用堆栈来跟踪路径元素 当我使用 string Join 连接路径元素时 我发现它们被颠倒了 当我调试该方法时 我查看了堆栈 发现堆栈内部数组中的元素本身是相反的 即最近 Push 的元素位于内部数组的
  • 在 C 语言中,为什么数组的地址等于它的值?

    在下面的代码中 指针值和指针地址与预期不同 但数组值和地址则不然 怎么会这样 Output my array 0022FF00 my array 0022FF00 pointer to array 0022FF00 pointer to a
  • 无法继承形状

    为什么我不能使用继承 a 的类Shapes class http msdn microsoft com en us library ms604615 28v vs 90 29 我需要延长Rectangle具有一些方法的类 但我想以与使用相同
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • wordexp 失败时我们需要调用 wordfree 吗?

    wordexp 失败时我们需要调用 wordfree 吗 在某些情况下 调用 wordfree 似乎会出现段错误 例如 当 wordfree 返回字符串为 foo bar 的错误代码时 这在手册页中并不清楚 我已经看到在某些错误情况下使用了
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L

随机推荐

  • 使用 PHP 过滤 XML 文件

    我想加载 XML 文件 然后删除所有
  • 任务“:bootRun”执行失败。 > 进程“命令”C:\Program Files\Java\jdk-9.0.4\bin\java.exe'' 已完成,退出值非零 1

    我一直在到处寻找如何解决这个问题 我发现了类似的问题 并尝试了一切 但没有任何帮助 重新安装 Java 和 gradle 没有帮助 这里是错误的堆栈跟踪 Task bootRun Spring Boot
  • mongo 的简短用户友好 ID

    我正在创建一个实时股票交易系统 并希望为用户提供一种人类可读 用户友好的方式来参考他们的订单 例如 ID 的长度应为 8 个字符 并且仅包含大写字符 例如Z9CFL8BA 由于显而易见的原因 id 在系统中需要是唯一的 我使用 MongoD
  • 通过 emacs -nw 打开多个垂直分割的文件

    Using emacs nw file1 file2我可以一次打开多个文件 然而 emacs 将以水平分割方式打开它们 有没有办法将默认分割行为设置为垂直 我看过 切换窗口分割 http www emacswiki org emacs To
  • Micronaut:如何获取 Prometheus 格式的指标?

    我应该如何配置 Micronaut 才能获得 metrics普罗米修斯格式 Used 微型机器人1 0 0 M3 Now micronaut metrics enabled true export prometheus enabled tr
  • 如何在swift中编写通用工厂方法?

    我不知道如何 如果可能的话 编写调用从常见已知基类 继承的泛型类型的构造函数的方法 以创建 T 的一些实例 而无需求助于显式工厂函数 即使用所有花哨的功能由类型推断提供 在操场上运行的示例 Let there be classes MyPo
  • JavaFx PieChart:控制大小

    我是 JavaFX 新手 我正在调整用 JavaFX 开发的应用程序 该应用程序使用大量彼此相邻的饼图 所有饼图都作为同一饼图的子项HBox 这些图表没有相同数量的类别 并且由于某种原因 其中一些类别变得比其他类别更大 有什么办法可以控制它
  • WebApi 上的 AngularJS 和 OWIN 身份验证

    我已经在我的 WebApi 上实现了基于 OWIN 令牌的身份验证 我还通过调用启用了 CORSapp UseCors Microsoft Owin Cors CorsOptions AllowAll 我可以从 angularjs Web
  • `create_task()` 中的任务何时在 asyncio 中执行?

    在下面的代码中 import asyncio async def task func print in task func return the result async def main loop print creating task
  • Sublime Text多光标快捷方式

    我是 emacs 的忠实用户 我非常喜欢这样一个事实 无需使用鼠标即可完成所有操作 我认为这个功能让 emacs 非常高效 我也是 Linux 上的 Sublime Text 的忠实粉丝 我喜欢您启用的多光标功能Ctrl left mous
  • 动态父浮动div 100%高度没有绝对位置?

    我在这里读了很多书 但找不到我的答案的解决方案 我有一个容器 div 有多个浮动的左 div 如下面的 html 所示 div class catbg0 div class catb1 div div class catb2 Board N
  • 如何使用 Excel 公式仅删除前导和尾随空格,同时在单词之间保留空格?

    在Excel中 TRIM 将删除文本前后的所有空格 同时还会删除单词之间的任何重复空格 是否有一个公式或其组合可以起到相同的作用TRIM 但在单词之间保留空格 在下面的示例中 我正在寻找一个可以实现虚构公式 WXYZ 的公式 TRIM Om
  • 单击“查看更多”按钮后文本视图会展开或收缩

    在我的 tableView 单元格中 我有一个 textView 我通过 JSON 获取其字符串并动态更新单元格高度 如下所示 func tableView tableView UITableView heightForRowAt inde
  • 搜索 NSString 是否包含值

    我有一些由几个字符构造的字符串值 我想检查它们是否存在于另一个 NSString 中 不区分大小写和空格 示例代码 NSString me toBe NSString target abcdetoBe than check if me is
  • 定义 JavaScript 源文件的字符编码

    我想向我的德国用户打印一条状态消息 其中包含变音符号 我还希望它们位于源文件中 而不必仅为消息下载和解析一些额外的文件 但是 我似乎找不到一种方法来定义 JS 源文件的编码 有没有类似HTML的东西http equiv 或者我应该在 HTT
  • PyTorch:用于训练和测试/验证的不同前向方法

    我目前正在尝试延长a model https github com microsoft MASS这是基于 FairSeq PyTorch 的 在训练过程中 我需要训练两个编码器 一个使用目标样本 另一个使用源样本 所以当前的forward函
  • 将 QPair 转换为 QVariant

    我有以下问题 我想通过TCP传输数据 并为此编写了一个函数 为了获得最大的可重用性 函数模板是f QPair
  • 在 C++ 中进行事件处理的正确方法是什么?

    我有一个应用程序需要按以下方式响应某些事件 void someMethodWithinSomeClass while true wait for event if event SomeEvent doSomething continue i
  • 在 Scala 中初始化通用变量

    如何在 Scala 中声明泛型变量而不对其进行初始化 或初始化为任何值 def foo T var t T tried null t def foo T var t T null asInstanceOf T t 而且 如果你不喜欢其中涉及
  • 将 setvbuf() 与 STDIN 流结合使用

    我正在编写一个小型 C 程序 它必须接受大于 4096 字节的输入流 我确实找到了一个推荐使用的帖子设置vbuf here 使 fgets 在 Linux 上发出更长的 read 调用 https stackoverflow com q 3