0

我正在使用 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 上的默认设置没有可执行权限?

4

1 回答 1

0

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

于 2013-11-14T04:04:16.720 回答