视窗上的 ANSI C 文件权限



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

// 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上的默认值没有可执行权限?

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

最新更新