如何在 Posix 上使用 C 创建具有正确权限的目录

2024-01-04

我正在尝试编写一个简单的 C 程序来创建目录(mkdir 克隆)。这是我到目前为止所拥有的:

#include <stdlib.h>
#include <sys/stat.h> // mkdir
#include <stdio.h> // perror

mode_t getumask()
{
    mode_t mask = umask(0);
    umask (mask);
    return mask;
}

int main(int argc, const char *argv[])
{
    mode_t mask = getumask();
    printf("%i",mask);

    if (mkdir("trial",mask) == -1) {
        perror(argv[0]);
        exit(EXIT_FAILURE);
    }
    return 0;
}

此代码创建目录d---------但我希望它用它来创建它drwxr-xr-x像 mkdir 一样吗?我在这里做错了什么?


你似乎误解了什么umask是用来。它设置/检索进程的文件模式创建掩码,该掩码又用于turn off您在调用中指定的文件模式中的位,例如mkdir,像这样(伪代码):

real_mode = requested_mode & ~umask

因此,在您的代码中,由于您传入了 umask 本身的值,因此您最终将权限指定为零,这正是您所看到的。

相反,您应该在调用中指定所需的权限mkdir, 像这样:

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

如何在 Posix 上使用 C 创建具有正确权限的目录 的相关文章

随机推荐

  • 如何实现 Android 库模块之间的导航,重点关注可重用性和关注点分离?

    我正在尝试实现一个单独的导航模块来在 android 库模块之间导航 重点关注可扩展性 可重用性和模块独立性 我的应用程序架构与此示例类似 我目前的做法 1 定义NavigatorInterface对于每个图书馆 2 实施每一项Naviga
  • Facebook Graph Api:缺少评论

    环境 我检索客户 Facebook 页面的 Facebook 评论 我有该 Facebook 页面的访问令牌 权限范围为 read stream read mailbox read page mailboxes publish stream
  • 使用 R 抓取 Google 结果

    我想从谷歌搜索中转义结果的所有标题 例如 如果我用谷歌搜索 asus 那么我想抓取第一页的所有标题 我的问题是我的结果是空的 代码如下 url https www google com search q asus first page lt
  • jQuery UI 调整自定义句柄的大小,而不是调整大小的元素的子元素

    我需要为 jQuery UI 可调整大小的元素 不是该元素的子元素 提供自定义句柄 我尝试按照记录的方式进行操作jQuery UI 文档页面 http api jqueryui com resizable option handles但我无
  • C# 中的 Char.IsHex()

    继从这个问题 https stackoverflow com questions 223832 check a string to see if all characters are hexadecimal values在 C 中编写 Ch
  • Redux Form - 无法在输入中输入任何内容

    您好 我最近升级到了 redux form 版本 6 0 0 我面临着一个问题 比如我无法在文本字段中输入任何内容 P S 我也在使用 Reactintl 我正在使用 compose 来聚合 connect reduxform 和 intl
  • iOS 配音状态

    我正在尝试向已开发的 iOS 应用程序添加辅助功能 有一些 UI 功能 例如按钮 我希望它们在 iPhone 设置的辅助功能菜单中的 VoiceOver 选项打开时显示 而在画外音关闭时不显示 有没有办法检查画外音选项是否打开 BOOL U
  • 是否可以纯粹在 JDBC 连接 URL 中设置“oracle.net.encryption_client”属性?

    是否可以设置oracle net encryption client属性纯粹在 JDBC 连接 URL 中吗 我可以看到该属性可以通过属性参数设置DriverManager getConnection url props 但是是否可以在 U
  • 从 TestFlight 启动 iOS 应用程序崩溃

    我在 TestFlight 上有我的 iOS 应用程序 我把它安装在我的 iPad 上 安装后 我通过点击 打开 按钮打开了该应用程序 它开始启动带有闪屏的应用程序 然后崩溃了 但是手动点击应用程序图标启动应用程序效果很好 提前致谢 Non
  • 如何将 proguard 优化器工具与 xamarin 表单一起使用

    我想减小 apk 文件的大小 因此我在 Android 项目的属性窗口中检查启用 ProGuard 选项 但出现编译时错误 错误 java exe 退出 代码为 1 我尝试了一些类似的事情 头大小已经是1G了 Android目标版本是9 0
  • CakePHP 请求数据限制

    当我尝试从 CakePHP v2 3 3 表单发送大量数据时 this gt request gt data 数组仅包含部分数据 大约前 1000 个值 CakePHP 会截断这个数组吗 我可以做什么来获取其余数据 我尝试增加 php in
  • Mac 中 Django 中的 csv 文件上传错误:在未加引号的字段中看到换行符

    我在 Mac Excel 中创建了一个 csv 文件 并想通过 Django 将其上传到我的服务器 我的部分代码位于views py如下 FILE UPLOAD DIR2 mnt opt data spam fd2 filepath2 te
  • C# 中的通用属性 [重复]

    这个问题在这里已经有答案了 可能的重复 制作通用属性 https stackoverflow com questions 271347 making a generic property 我不太确定如何做到这一点 但我想做的是创建一种特殊类
  • Hibernate 合并不会删除 OneToMany 旧实体

    我有以下实体 Seminar class Entity Table name seminars public class Seminar Id GeneratedValue private int id OneToMany cascade
  • Windows 凭据提供程序实施

    这是与 Windows 凭据提供程序实施相关的问题 我想跟进这个问题 我们有一个自定义 MFA 解决方案 它会在 Windows 完成身份验证后提示输入 SMS PIN 然后再让用户进入 不幸的是 在 Windows 2016 和 Wind
  • 在 mstest 中运行测试而无需编译/构建

    有办法吗 每次开始测试时都必须等待构建吗 我想从 Visual Studio 构建而不是从测试构建 thanks 任何时候你的代码发生变化并且你运行你的测试时 它都会进行构建 所以从技术上讲 你可以一遍又一遍地运行你的测试 它们只会第一次构
  • 如何使用 Room Db 返回 Rx Single 交易?

    假设有一个Dao类具有以下两个方法 1 delete items List
  • Phonegap 桌面无法正常启动..不断加载

    我已经在Windows 7 64位 上安装了phonegap桌面v 0 3 0 我的问题得到解决 从下面的链接下载新版本 0 3 1 并安装 https github com phonegap phonegap app desktop re
  • 如何在 iOS 中检测颜色并打印其名称?

    如何检测图像 摄像机上的主色并打印其名称 例如 在图像中可能会有非常浅的蓝色 浅蓝色 蓝色 深蓝色 只是因为该物体或图像上的闪电 当我分析该图像时 我想让我知道主色是蓝色 并打印 蓝色 在屏幕上 如果我需要使用 RGB 我想我需要颜色范围
  • 如何在 Posix 上使用 C 创建具有正确权限的目录

    我正在尝试编写一个简单的 C 程序来创建目录 mkdir 克隆 这是我到目前为止所拥有的 include