如何检查C中是否禁止使用文件



基本上,我正在处理一个html服务器分配,分配的一部分是给出"error 403 FORBIDDEN"消息,尽管我知道如何检查文件是否存在,但我如何检查它是否被禁止。

我正在做的是打开一个文件。

File* filein = fopen(pathname,"r");

只要让我知道我能做些什么来检查该文件是否被禁止。

我认为禁止的文件是不可访问的(例如,chmod 440被设置为未运行服务器的用户),所以当您由于缺乏权限而无法打开文件时,您可以通知用户这一点,例如c:中的代码

#include <stdio.h>
int main()
{
    FILE *file = fopen("file.txt", "r");
    if (file == NULL)
        perror("Error");
    fclose(file);
    return 0;
}

请记住使文件无法访问-例如chmod 000 file.txt

fopen()在失败时返回一个空指针。根据库实现,全局变量errno可以被设置为指示故障原因。

通常,无效的文件权限会导致EACCES错误,因此在fopen()失败后,请检查errno是否等于EACCES(记住#include <errno.h>)。如果没有,则可能由于与文件权限无关的其他错误而无法进行修复。

这是一个包含其他一些错误常量的页面,您可以进行检查。

相关内容

  • 没有找到相关文章

最新更新