您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么在重定向到文件时stdout需要显式刷新?

为什么在重定向到文件时stdout需要显式刷新?

刷新stdout取决于其缓冲行为。可以将缓冲设置为三种模式:(_IOFBF完全缓冲:等待,直到fflush()可能),_IOLBF(行缓冲:换行符触发自动刷新)和_IONBF(始终使用直接写)。“对这些特性的支持是由实现定义的,并且可能会受到setbuf()setvbuf()功能的影响。” [C99:7.19.3.3]

“在程序启动时,三个文本流是预先定义的,无需显式打开- 标准输入(用于读取常规输入),标准输出(用于写入常规输出)和标准错误(用于写入诊断输出)。最初打开时,标准错误流没有被完全缓冲;标准输入和标准输出流被完全缓冲,当且仅当可以确定该流不引用交互式设备时。” [C99:7.19.3.7]

其他 2022/1/1 18:16:17 有533人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶