为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

2024-06-19

在调试一些代码时,我得到如下内容:

#include<stdio.h>

int main()
{
    FILE *fb = fopen("/home/jeegar/","r");
    if(NULL == fb)
        printf("it is null");
    else
        printf("working");
}

在 fopen 中,我给出了一个有点有效的路径名,但不是文件名。那么 fopen 不应该返回 NULL 吗?但它不返回 null!

Edit:

如果我给path of valid directory在 fopen 中然后它会打印working:

如果我给path of invalid directory在 fopen 中然后它会打印it is null

Edit:规格说

Upon successful completion, fopen() shall return a pointer to the object 
controlling the stream. Otherwise, a null pointer shall be returned.

所以这里无论是否设置错误代码,它都必须返回NULL

而错误代码设置是对ISO C标准的扩展。

错误也不会设置在这里

#include<stdio.h>
#include <errno.h>

int main()
{
errno = 0;
FILE *fb = fopen("/home/jeegar/","r");
if(fb==NULL)
    printf("its null");
else
    printf("working");


printf("Error %d \n", errno);


}

输出是

workingError 0 

我认为在 Unix 中所有东西(包括目录)都被认为是文件,所以 fopen 应该对它们起作用。

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

为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值? 的相关文章

  • 当我执行 pip --version 时,它显示错误为 ImportError:没有名为 pyparsing 的模块

    我尝试安装 卸载py解析以及它不起作用 我被这个问题困住了 我还必须安装额外的库 这是错误消息 Traceback most recent call last File usr bin pip line 5 in
  • 使用 sysfs 的 Linux 用户空间 GPIO 中断

    我想使用 sysfs 在用户空间上使用 GPIO 中断 我使用这些命令 root at91 gpio109 gt echo 109 gt export root at91 gpio109 gt cd gpio109 root at91 gp
  • asm、asm 易失性内存和破坏性内存之间的区别

    在实现无锁数据结构和定时代码时 通常需要抑制编译器的优化 通常人们使用asm volatile with memory在 clobber 列表中 但有时你会看到asm volatile或者只是一个简单的asm破坏记忆 这些不同的语句对代码生
  • 值类型数组如何存储在 .NET 对象堆中?

    在 NET中 诸如int之类的值类型对象存储在内存中 引用类型对象需要为引用和对象单独分配内存 并且对象存储在 NET对象堆中 而Array是在堆中创建的 那么int 等值类型的数组如何存储在堆中呢 这是否意味着值类型对象可以存储在堆中而无
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • 创建 FileInputStream 对象时使用 InputStream 而不是 FileInputStream 有什么区别

    这可能很愚蠢 但我想知道后台操作的区别 InputStream is new FileInputStream filepath FileInputStream is new FileInputStream filepath 上面两行代码有什
  • ulimit -r 返回不同的值

    我将以下两行添加到系统范围的 etc security limits conf 中 soft rtprio 55 hard rtprio 55 系统重新启动后 根据我在计算机上访问用户帐户的方式 我会得到两个不同的结果 user clien
  • 更改 Json 中属性的键

    这些天我正在尝试制作一个 json 编辑器 与树视图一起使用 我确实更改了值函数 我也可以更改一些键 但我无法在对象中设置键 我可以设置值 SetValue ref JObject main JToken token JToken newV
  • 文件已创建但无法写入

    我的计划 检查Settings txt 文件 如果该文件不存在 则创建文本并自动写入其中 如果 Settings txt 文件已存在 请忽略 不要创建或写入现有文件 我的问题 当文件不存在时 Settings txt 文件会创建 但它是空的
  • dotnet core 创建文件名中不含“CoreFxPipe_”的命名管道

    使用以下命令创建命名管道时命名管道客户端流 or 命名管道服务器流dotnet core 的类中 关联的 管道 看起来实际上是一个套接字 已自动将 CoreFxPipe 添加到文件名的前面 有没有一种非黑客的方法来防止这种行为 我只是希望文
  • “未定义对 clrscr() 的引用;” [复制]

    这个问题在这里已经有答案了 include
  • llvm clang 编译器上的dynamic_cast失败

    我看到一个奇怪的失败dynamic cast正在返回NULL在 clang 编译器上 但相同的代码可以在 gcc 环境下运行 您能否指出根本原因是什么 之间可能有什么区别dynamic cast关于 llvm 和 gcc 我正在使用两个编译
  • 在实体框架中不使用 Dispose 或 using()

    我一路上正在编写一个网络应用程序并学习实体框架 如果我做错了什么 我很好奇 我在查询时没有使用过 dispose 或 using 语句 我的存储库示例 public User GetUserById int sessionId var us
  • 从高斯分布中采样随机值的最快方法是什么?

    The Box Muller 变换 http en wikipedia org wiki Box E2 80 93Muller transform 是一种从高斯分布中采样随机值的优雅且性能合理的方法 我正在寻找一种用 C 编写 清晰的更快方
  • 访问控制器类中的 appsettings.json 值

    无法弄清楚如何读取startup cs之外的appsettings json值 例如 我想做的是在 Layout cshtml 中 从配置中添加站点名称 例如 ViewData SiteName Configuration GetValue
  • 获取上下文菜单的控制

    我有一个如下所示的上下文菜单 A 1 2 3 选择 1 2 或 3 后 我需要访问调用上下文菜单的对象 意思是如果这是 textbox1 的上下文菜单 那么我需要访问该对象 我该怎么做 忘了说了 这是一个WPF应用程序 所以我使用 Syst
  • 实现多个接口的 Service Fabric Actor 接口

    我正在构建一个应用程序 其中有多个不同的参与者类型 这些参与者类型对于某些不同的数据对象具有相同类型的行为 CRUD 为了更轻松地创建处理此问题的代码 我尝试创建一个这些参与者可以实现的接口 这意味着我有一个看起来像这样的参与者界面 pub
  • 对数据绑定组合框进行排序的最佳方法是什么?

    我对此做了一些研究 似乎对数据绑定组合框进行排序的唯一方法是对数据源本身进行排序 在本例中为数据集中的数据表 如果是这种情况 那么问题就变成对数据表进行排序的最佳方法是什么 组合框绑定在设计器中设置初始化使用 myCombo DataSou
  • 系统.安全.加密与 PCLCrypto

    我们正在删除系统中的许多共享功能并将其移植到 PCL 库中 我在使用 PCLCrypto 时遇到问题 我正在获取数据库中的一些现有数据 并尝试使用相同的算法对其进行解密 我得到了值 但末尾有 16 个额外字节 这些字节都是垃圾 参见下面的代
  • Interlocked.CompareExchange 可以抛出 NullReferenceException 吗?

    From https msdn microsoft com en us library bb297966 v vs 110 aspx https msdn microsoft com en us library bb297966 v vs

随机推荐

  • 如何解决下载时“失败 - 无文件”的问题?

    我正在尝试设置适用于 Chrome 和 IE 10 11 的下载文件 它在大多数情况下适用于普通文件类型 EXE PNG TXT 等 但当尝试下载没有文件类型的文本文件或 000 等随机类型时 它将失败 显示 失败 否 文件 有谁知道可能导
  • 扩展 Protobuf 消息

    我有许多不同的模式 但是每个模式都包含一组字段 我想知道是否有一种方法可以让不同的模式扩展父模式并继承其字段 例如 这就是我想要的 message Parent required string common1 0 optional stri
  • 多个 MapFragment 的性能(Android Map API v2)

    我搜索了新的文档谷歌 Android 地图 API v2 https developers google com maps documentation android 但没有找到任何相关信息 在 v2 之前 我们 官方 无法正确显示每个应用
  • Ubuntu 中的颜色选择器实用程序(颜色移液器)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用脚本从网站中提取电子邮件地址

    给定一个网站 我想知道以编程方式和 或使用脚本的最佳程序是什么 以纯文本形式提取每个页面上存在的所有电子邮件地址 电子邮件受保护 cdn cgi l email protection从该链接和下面的所有站点 递归或直到某个固定深度 使用 s
  • 在网站上不间断地播放 mp3?

    客户请求在整个网站上播放单个曲目 一般来说 我建议不要这样做 但他们坚持这样做 那么 将 Flash 播放器嵌入到网站中并且当用户转到另一个页面时不会出现间隙 中断的最直接方法是什么 我认为需要一个 iframe 我正在使用具有自动恢复功能
  • iPhone OS:从匿名对象获取方法和变量列表

    我正在构建我的第一个 iPhone Obj c 应用程序 并且我有大量的数据保存子类 我将它们传递给引用函数 对于 cite 函数 这些对象是匿名的 我需要找到一种方法来访问每个传递对象的所有变量 我一直在使用预构建的 NSArray 和选
  • 如何在 Ruby 中创建自定义排序方法

    我想指定一个自定义块方法 通过评估两个属性来对对象数组进行排序 然而 经过多次搜索 我没有找到任何没有的例子 lt gt 操作员 我想比较a to b if a x less than b x return 1 if a x greater
  • 密文窃取算法 - 哪一种是正确的?

    网络上提出了两种算法 在这两种算法中 第一部分是相同的 1 Pad the last partial plaintext block with 0 2 Encrypt the whole padded plaintext using the
  • AttributeError:“模块”对象没有属性“TestCase”

    我有名为 test py 的unittest 文件 My code import unittest class Test unittest TestCase def myTest self a 1 self assertEqual a 1
  • 将 std::stack .pop() 方法的结果存储到变量中

    我想做以下事情 std stack
  • MVC4 如何设置 cookie 然后重定向到操作

    您好 我正在尝试获取用户角色并将其设置为我的应用程序中的 cookie 我有以下有效的代码 public ActionResult Index var user User Identity Name set by 3rd party cen
  • 通过链接导航多个对象而不重复

    我正在尝试浏览一堆带有其他对象链接的对象 我想从 id 1 开始并浏览每个对象 有些对象会循环回到之前的对象 所以我想确保每个对象只查看一次 否则我会陷入无限循环 我还希望能够通过链接导航来判断哪些对象无法访问 我认为导航顺序并不重要 这是
  • BDD/TDD:依赖可以是一种行为吗?

    我被告知不要使用实施细节 依赖关系看起来像是一个实现细节 但我也可以将其表述为一种行为 示例 LinkList 依赖于存储引擎来存储其链接 例如 LinkStorageInterface 构造函数需要传递一个已实现的 LinkStorage
  • “ghs.google.com”域的机制是什么?

    如果我想给我的应用程序绑定一个域名GAE Google App Engine 我应该添加一条 CNAME 记录ghs google com 我想了解这个域名是如何运作的 例如 我有这样的 CNAME blog goace com ghs g
  • * foreach 里面的 foreach codeigniter 2?

    在 codeigniter 2 1 中 我尝试按类别显示频道 因此 如果我有一个名为 电影 的类别 我应该会看到电影中的频道列表 我尝试使用嵌套的 foreach 循环来完成此任务 但似乎无法使其工作 我的表结构是这样的 但更复杂 我的型号
  • strings.xml 中的 Android 变量

    我在某处读到如何在 XML 文档中使用变量 他们说这很简单 我想也是如此 我在 Android strings xml 文件中成功地使用了它 我一整天都这样使用它 直到突然 android 停止解析它并停止将它视为变量 我这样使用它
  • 一对一映射不适用于二级缓存

    我已经声明了 Hibernate 3 的以下映射 使用 FluentNHibernate public class ActivityMap ClassMap
  • 用渐变画线

    我在不同的位置画了多条线 例如 canvas drawLine startXLine1 stopXLine1 startYLine1 stopYLine1 paint canvas drawLine startXLine2 stopXLin
  • 为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

    在调试一些代码时 我得到如下内容 include