getchar() 返回错误的特殊情况是什么?

2024-03-28

所以我知道getchar()当输入结束或发生错误时返回 EOF。我也知道我可以通过以下方式检查发生了哪些情况ferror(stdin) and feof(stdin)。 我想知道什么情况下会特别发生错误。

我检查了这两个函数的手册页,但那里没有任何内容。


getchar()可以返回EOF针对多个系统特定的 I/O 错误。getchar()被定义为等价于getc(stdin),本身相当于fgetc(stdin)除了它可以作为宏来实现这一事实之外。以下列出了 Linux 系统的可能原因:Linux 手册页 https://man7.org/linux/man-pages/man3/fgetc.3p.html:

返回值

成功完成后,fgetc()将返回下一个字节 来自stream指向的输入流。如果文件结尾 设置了流的指示符,或者流是否处于末尾 文件,应设置流的文件结束指示符fgetc()将返回EOF。如果发生读取错误,则错误 应设置流的指示器,fgetc()将返回EOF, 并应设置errno以指示错误。

ERRORS

The fgetc()如果需要读取数据并且以下情况,函数将失败:

EAGAIN The O_NONBLOCK为文件描述符设置标志 底层流和线程将被延迟fgetc()手术。

EBADF流底层的文件描述符不是有效文件 描述符打开以供读取。

EINTR读取操作因收到 信号,并且没有传输数据。

EIO发生物理 I/O 错误,或者进程处于 后台进程组尝试读取其 控制终端,并且调用线程是 阻塞SIGTTIN或者该过程被忽略SIGTTIN或者 该进程的进程组是孤立的。此错误可能 也可以出于实现定义的原因而生成。

EOVERFLOW该文件是常规文件,并尝试读取 等于或超过与相关的最大偏移量 对应的流。

The fgetc()如果出现以下情况,功能可能会失败:

ENOMEM可用存储空间不足。

ENXIO请求是由不存在的设备发出的,或者请求 超出了设备的能力。

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

getchar() 返回错误的特殊情况是什么? 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win

随机推荐

  • 在r中,如何按一个因子修剪或缩尾数据

    我试图在因素 主题 的每个级别应用温莎函数 以消除极端情况 我可以将winsor函数应用于整个列 但想在主题内执行此操作 Subject RT 1 402 1 422 1 155 1 460 2 283 2 224 2 346 2 447
  • java.lang.NullPointerException:使用 QueryDsl 过滤数据时

    我正在使用 Spring data jpa 来创建服务 在下面的代码中 我使用 Querydsl 在网格上实现搜索过滤器 但对于建筑物名称 我无法过滤网格 我正进入 状态 java lang NullPointerException nul
  • Visual Studio 2008、C++ 的探查器?

    有什么好的 免费的 或者至少相当便宜的 至少适用于本机 C 的分析器 可以与 Visual Studio 2008 专业版 我在看社区版但是他们 似乎只支持 Visual Studio 2003 和 Visual Studio 2005 如
  • @NotNull 注释在 Spring boot 应用程序中不起作用

    下面是我的 DTO 课程 public class AbstractDTO extends BaseDTO private Integer createdBy JsonFormat shape JsonFormat Shape STRING
  • 如何设置子视图到窗口的视图方向

    我创建了一个 UIView 我想将视图子视图添加到 appdelegate 窗口 UIView newView UIView alloc initWithFrame CGRectMake 0 0 1048 748 AppDelegate a
  • 从列表中删除重复的子列表

    如果我有一个这样的列表 mylist 1 2 3 a c 3 4 5 1 2 3 4 5 a c 3 4 5 1 2 删除重复子列表的最佳方法是什么 现在我用this https stackoverflow com a 20462808 4
  • Docker COPY 没有这样的文件或目录

    构建 docker 映像在复制任务中失败 没有这样的文件或目录 我正在使用你好世界春天的例子 https spring io guides gs spring boot docker 从 openjdk 构建 8 jdk alpine Ru
  • Jquery 加载函数将附加到已经存在的 HTML 上

    我正在尝试进行 AJAX 调用 该调用将附加 html 即向标签之间已存在的内容添加额外的 html 这是我的加载函数的样子 我如何修改这个函数才能将其附加到类 tid list 中 提前致谢 您必须通过ajax获取数据并使用 tid li
  • 在 jQuery 中将 processData 设置为 false 会破坏我的 AJAX 请求

    我已经用谷歌搜索了一段时间 只能找到什么processData false做 我找不到经历过同样问题的人 我将 JSON 传递回服务器 并且不希望 jQuery 自动将数据转换为查询字符串 因此我将 processData 设置为 fals
  • 获取 VBScript 中变量的类型

    如何使用 VBScript 获取变量的类型 Is VarType https msdn microsoft com en us library aa263402 v vs 60 aspx你需要什么 返回一个指示变量子类型的值 Constan
  • 在区域之外的 MVC 应用程序中托管 WCF 服务

    我有一个 MVC 项目 我在根目录中添加了一个名为 WCF 的文件夹 在此文件夹中 我创建了一个名为的 WCF 服务CustomFunctions 当我尝试启动该服务时 我收到以下错误 错误 无法从中获取元数据http localhost
  • 使用 ajax 包含子行的闪亮数据表

    我正在尝试使用数据表库来实现更多自定义的闪亮效果 这是我试图做的例子 https datatables net examples api row details html https datatables net examples api
  • AfxGetAppName() 返回垃圾字符

    我的应用程序中有以下代码行 CString strAppName AfxGetAppName 有时会充满strAppName出现了垃圾字符 我不明白为什么 有人有主意吗 TIA 如果你改变的话这是可能的m pszAppName手动 在应用程
  • 将字符串列表通过管道传输到 for 循环

    我如何将列表传递给for在bash中 I tried echo some different lines for i do echo do something with i done 但这行不通 我也试图找到一个解释man但没有man fo
  • 使用 javascript 在循环内设置超时

    我正在制作一个解谜函数 它使用当前打乱顺序的一系列拼图 每个片段都有一个 id 它指向数组中的正确位置 我在要交换的部分上设置了叠加颜色 我希望在着色和交换的部分之间有一个延迟 function solvePuzzle while rezo
  • JavaScript/GSON:通过对象图动态访问 JSON 引用(循环引用)

    由于存在多个循环引用 我在通过 Google GSON 序列化 Java 对象时遇到了问题 我所有的尝试都以 StackOverflowException 结束 因为 GSON 无法处理这些循环引用 作为解决方案 我发现以下GraphAda
  • SELECT FOR UPDATE 中的数据库死锁

    我的应用程序间歇性陷入僵局 我的应用程序有 1 个表 例如 EMPLOYEE ID PK NAME SAL 并且有 2 个会话 第一节 SELECT ID NAME SAL FROM EMPLOYEE WHERE SAL SELECT MI
  • spring mvc 对 URL 参数进行加密和编码

    我正在编写一个 Spring mvc 应用程序 它需要发送一封包含链接和加密参数的电子邮件 用户将单击该链接 我需要解密新页面中的参数 因此 我正在编写一个 util 类来加密和解密以及对参数进行编码和解码 当我运行我的独立java类 用于
  • 你能告诉 PHP 在发生错误时发送标头(如 500)吗?

    在我当前的项目中 我使用普通 HTTP 请求查询 PHP 但也通过 AJAX 查询 有时返回 JSON 格式的数据 有时返回普通文本 当发生错误时 在正常请求中 您会看到错误消息并可以采取一些措施 另一方面 对于 AJAX 请求 您无法确定
  • getchar() 返回错误的特殊情况是什么?

    所以我知道getchar 当输入结束或发生错误时返回 EOF 我也知道我可以通过以下方式检查发生了哪些情况ferror stdin and feof stdin 我想知道什么情况下会特别发生错误 我检查了这两个函数的手册页 但那里没有任何内