Linux 上的 CreateFile CREATE_NEW 等效项

2023-12-13

我编写了一个尝试创建文件的方法。不过,我设置了标志 CREATE_NEW,因此它只能在它不存在时创建它。它看起来像这样:

for (;;)
  {
    handle_ = CreateFileA(filePath.c_str(), 0, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_HIDDEN | FILE_FLAG_DELETE_ON_CLOSE, NULL);
    if (handle_ != INVALID_HANDLE_VALUE)
      break;

    boost::this_thread::sleep(boost::posix_time::millisec(10));
  }

这按其应该的方式工作。现在我想把它移植到linux上,当然CreateFile函数只适用于windows。所以我正在寻找与此等效的东西,但在Linux上。我已经看过 open() 但我似乎找不到像 CREATE_NEW 一样工作的标志。有谁知道这个问题的解决方案?


看看open() manpage, 的组合O_CREAT and O_EXCL就是您正在寻找的。

Example:

mode_t perms = S_IRWXU; // Pick appropriate permissions for the new file.
int fd = open("file", O_CREAT|O_EXCL, perms);
if (fd >= 0) {
    // File successfully created.
} else {
    // Error occurred. Examine errno to find the reason.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 上的 CreateFile CREATE_NEW 等效项 的相关文章

  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 操作错误:删除数据库和迁移后没有这样的表

    我删除了数据库和所有迁移以重置数据库 但是删除后当我尝试运行时 Makemigrations 显示错误 操作错误 没有这样的表 student app grade 我有一个名为student app的应用程序 其中有一个名为 Grade 的
  • 如何在 Ionic/Cordova 应用程序中保护我的 Google 地图 Javascript V3 API 密钥?

    我目前正在开发一个 Ionic 应用程序 其中嵌入了 Google 地图 Google Maps V3 API 建议使用 API 密钥来跟踪使用情况 问题是 当我创建供浏览器使用的 API 密钥时 我只能通过指定引荐来源网址来保护我的 AP
  • 如何在不同列中分隔逗号分隔的值,同时保留 Google 表格中其余行中的值?

    如何调整逗号分隔值 使得用逗号分隔的值被分隔开 并为此值创建一个新行 并且其他值与该值来自的行中的值相同 那看起来像这样 由此 对此 我实际上正在寻找一个尽可能不使用谷歌脚本并且不使用庞大而复杂的公式的答案 可以使用 Google 表格中的
  • Android 代码使 imageView 圆形不起作用

    我正在努力让我的ImageView圆形的 我编写了以下代码以使其显示为圆形 但不知何故它仍然显示为方形ImageView 使用picasso获取图像 Java代码 ImageView iv ImageView addLinkDialog f
  • 如果客户端验证失败,如何隐藏 div(在客户端)?

    我正在制作一个带有 ASP NET 验证控件的 ASP NET 页面 如果验证失败 我想显示一个 div 在客户端 我在哪里做这个 我找不到访问客户端上的 OnValidate 事件的方法 我可以在服务器上执行此操作 但我宁愿在客户端上执行
  • 只是想知道 System.out.println()

    只是问我是否有正确的理解 System out println 系统是包 外面是班级 println 是方法 如果这是错误的 请告诉我正确的答案是什么 No System是一个类 它位于java lang包 这就是为什么你不需要导入它 ou
  • 隐藏爬虫的文本或div [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 假设我有一条短信 span class hide for real span h2 Obama is rocking the house h2 span class hide not
  • 如何从 UITableview 的选定行获取 cell.label.text 值?

    我是 iOS 应用程序开发新手 需要有关 UItableview 的帮助 当我用 json 数据填充表视图时 我也使用自定义的 Tableviewcell 我没有得到 lbluid 上选定单元格的 huid 值 lbluid 根据滚动显示
  • 在 EC2 上:未找到 sudo 节点命令,但没有 sudo 的节点是可以的

    我刚刚在新的 EC2 微型实例上安装了 nodejs 我正常安装了 configure gt make gt sudo make install Problem 当我在 ec2 user 下运行 node 时 它运行完美 当我运行 sudo
  • Java中“this”和“super”关键字的区别

    关键词有什么区别this and super 两者都用于访问类的构造函数 对吗 你们谁能解释一下吗 让我们考虑一下这种情况 class Animal void eat System out println animal eat class
  • 如何在透明矩形上绘制阴影?

    当我向矩形添加投影位图效果时 投影会考虑矩形的透明度 有意义 有没有办法在透明矩形上渲染阴影 就好像 矩形是不透明的 即出现的是一个带有阴影的矩形 洞 下面是带有阴影的透明矩形的 XAML 没有显示任何内容
  • memory.limit() 混淆:“不再支持 memory.limit()”

    当我写 memory limit 时 我收到以下 bug 消息 内存 limit 1 信息 警告信息 不再支持 memory limit 我需要的是增加内存大小 谢谢 看来这不是一个错误 在阅读版本 4 2 0 2022 04 22 提供的
  • 使用 pyspark 压缩后目录大小增加

    我使用 pyspark 编写了一个文件压缩器 它的工作方式是将目录的所有内容读取到 Spark 数据帧中 然后执行重新分区操作以减少文件数量 所需文件的数量由以下公式计算 directory size Wanted file size 我面
  • 在闭包中使用“this”

    我只是好奇 我应该如何在 jQuery 函数中使用 this 例如 如果我有这样的代码 headEl find form blog search input focus function this next span animate opa
  • 在 python 中打开文件时,我不断收到“标识符中的无效字符”

    所以我尝试使用以下代码打开一个文件 open datapickle rb as f names F approximate pickle load f However I constantly get 我能做什么来解决这个问题 请帮忙 两个
  • SQL语法错误

    CREATE TABLE users id INT UNSIGNED NOT NULL AUTO INCREMENT type ENUM member admin NOT NULL username VARCHAR 30 NOT NULL
  • VTK 帧缓冲区和 OpenCV Mat 数据之间的转换

    我正在 VTK 中可视化数据 我想获取渲染窗口的帧缓冲区并在 OpenCV 应用程序中显示它 我目前正在尝试通过以下方式 void aig VirtualScene Mat cv Mat m typedef unsigned char pi
  • C# 中的密码加密?

    如何在 C 中加密和解密密码 谢谢你的帮助 首先 您实际上并不打算将加密密码保存在任何地方 而是执行单向哈希 例如 SHA 存储该哈希值 然后 当您向用户询问其密码时 您将执行相同的哈希 如果新的哈希值与存储的哈希值匹配 则说明匹配 哈希和
  • 在 python 应用程序中导入 Google Cloud Bigquery api 模块时出错

    我正在尝试将 bigquery 导入到我的 python 应用程序中from google cloud import bigquery并使用 dev appserver py 在本地运行它 但我收到一个错误 File Volumes Bud
  • Linux 上的 CreateFile CREATE_NEW 等效项

    我编写了一个尝试创建文件的方法 不过 我设置了标志 CREATE NEW 因此它只能在它不存在时创建它 它看起来像这样 for handle CreateFileA filePath c str 0 0 NULL CREATE NEW FI