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() 返回错误的特殊情况是什么? 的相关文章

  • 用 C 语言制作查找表的最佳方法是什么?

    我正在开发一个嵌入式 C 项目 我有一个 LCD 显示屏 每个字符都有一个 5x7 点阵 要显示特定字符 您必须移动与要打开的点相关的 5 个字节 所以我需要制作某种带有键的查找表 我可以在其中传递 ASCII 字符 并返回一个 5 字节的
  • 解决方案将无法构建,因为它无法从服务生成的类型转换为我的类型

    我有一个 WCF 服务项目 它构建得很好 可以生成可访问的 WSDL 并且 svcutil exe 不会生成任何错误 我有一个访问该 Web 服务的 服务管理器 项目 并且我已成功向其中添加了服务引用 ABCService 第三个项目包含我
  • 初始化影子变量

    标准中是否有任何内容定义从它隐藏的变量初始化变量 例如 int i 7 int i i Visual Studio 2013 允许这样做而不发出警告并按预期工作 内在i变量是 7 然而 Clang 和 GCC 给我一个警告 关于从自身初始化
  • 在 Windows 上实现堆栈跟踪 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在为我正在编写的游戏实现一个崩溃报告工具 并且我想为该报告提供 相当 详细的本机堆栈跟踪 我已经在 GNU Linux 上实现
  • 阅读 C 语言中的科学记数法

    我正在尝试读取包含以下内容的文件 1 0000000e 01 2 9265380e 03 5 0821200e 02 4 3231640e 01 2 0000000e 01 1 0170240e 04 9 2798610e 02 4 072
  • 使用 Mono Cecil 添加 try-catch

    我正在使用 Mono Cecil 在另一个方法中注入代码 我想在我的代码周围添加一个 Try Catch 块 所以我写了一个带有 try catch 块的 HelloWorld exe 并反编译了它 Try Catch 的 Reflecto
  • MDI应用程序中父窗体的问题

    我使用按钮作为容器中的控件 父窗体 当子窗体出现时 父窗体中的控件 按钮 图片 标签 出现在子窗体上并将其覆盖 我看不到子窗体 有谁知道如何防止这种情况 我不想将这些控件设置为 Control Visible false 因为当我最小化子表
  • C# - 获取 GPU 的总使用百分比

    我正在向我的程序添加一些新功能 这些功能当前通过串行连接将 CPU 使用情况和 RAM 使用情况发送到 Arduino 请参阅this https create arduino cc projecthub thesahilsaluja cp
  • Task.WaitAll 保持循环

    我正在尝试这个异步代码只是为了测试 async 关键字 public async Task
  • Windows 消息

    我需要发送带有自定义 ID 的自定义 Windows 消息 其他应用程序将侦听该消息 Windows 是否为内部消息保留任何预定义的消息 ID 范围 如 SQL Server 那样 内部消息最多为 50 000 The 文档 https m
  • std::vector 错误 C2582:“operator =”函数在以下位置不可用

    我使用简单的向量push back到类型A的对象 并收到此错误 这是我的代码 class A public A int a int b int c include A h std vector a vec objects new std v
  • fgets 和 fread 之间的区别

    我有以下代码 include
  • 使用 ASP.NET Core Identity 将令牌保存在 Cookie 中

    我想在我的 身份 生成的 cookie 中保存一些内容 我目前正在使用文档中的默认身份设置 启动 cs services Configure
  • C 错误:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“char (*)[100]”

    过去几天我正在用 c 进行练习 并且收到此警告 如标题所示 我已经尝试了很多东西 但我真的不知道如何准确地解决这个问题 我不擅长编程 所以会有错误 以下是我正在使用的结构 无法更改 因为它们就是这样给出的 typedef struct bo
  • 缓冲区溢出(与)缓冲区溢出(与)堆栈溢出[重复]

    这个问题在这里已经有答案了 可能的重复 堆栈溢出和缓冲区溢出有什么区别 https stackoverflow com questions 1120575 what is the difference between a stack ove
  • 何时使用 const char * 何时使用 const char[]

    我知道它们是不同的 我知道它们有何不同 并且我阅读了我能找到的所有关于char vs char 但所有这些答案都没有告诉我们什么时候应该使用它们 所以我的问题是 你什么时候使用 const char text text 你什么时候使用 co
  • LINQ 表达式树 Any() 位于Where() 内

    我正在尝试生成以下 LINQ 查询 Query the database for all AdAccountAlerts that haven t had notifications sent out Then get the entity
  • 绑定到外部库中基本方法的方法无法处理“之间”的新虚拟方法

    假设我有一个库 版本 1 0 0 包含以下内容 public class Class1 public virtual void Test Console WriteLine Library Class1 Test Console Write
  • ASP.Net Core 中没有智能感知

    通过 Visual Studio 安装 ASP Net Core gt 新项目 gt Web gt ASP Net Web 应用程序 gt 确定 gt ASP Net 5 模板 安装后重新启动系统 然后创建一个新项目ASP NET 5 Te
  • 将 tiff 像素长宽比更改为正方形

    我正在尝试对多页 tiff 文件执行条形码识别 但是 tiff 文件是从传真服务器 我无法控制 发送给我的 该服务器以非方形像素长宽比保存 tiff 这导致图像由于纵横比而被严重挤压 我需要将 tiff 转换为方形像素长宽比 但不知道如何在

随机推荐

  • 在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 我想知道什么情况下会特别发生错误 我检查了这两个函数的手册页 但那里没有任何内