【问题标题】:ANSI C File Permissions on Windows?Windows 上的 ANSI C 文件权限?
【发布时间】:2013-11-14 02:41:12
【问题描述】:

我正在使用 CGYWIN gcc (4.8.2) 并且我正在打开和写入一个非常基本的文件,但生成的文件具有使其无法访问 Windows 的权限。我不明白为什么,我该如何解决这个问题?

// a bunch of curl stuff (CURLOPT_WRITEFUNCTION is write_data)
file = fopen(filename, "wb");
static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
    size_t written = fwrite(ptr, size, nmemb, (FILE *)stream);
    return written;
}

根据CGYWIN终端生成的文件是-rw-r--r--但是我最终写的文件需要可执行权限,我不明白为什么Windows上的默认没有可执行权限?

【问题讨论】:

    标签: c windows file-io libcurl ansi


    【解决方案1】:

    Windows 的权限与 Linux 非常不同,它使用 ACL 模型,允许访问控制比 Linux 的要复杂得多,而且它很难转换成这个简单的 rwxrwxrwx 标志集。但具有讽刺意味的是,Windows 的 ACL 并没有区分“读取权限”和“执行权限”,它是一回事。也许 Cygwin 有它自己的表示方式,但我认为这不是问题所在。如果你想写文件,你只需要写权限。

    【讨论】:

      猜你喜欢
      • 2011-09-22
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2017-01-19
      • 2011-03-07
      • 2016-04-14
      • 2017-01-17
      • 1970-01-01
      相关资源
      最近更新 更多