如何在C中检查文件是否被禁止?

时间:2013-02-14 03:09:48

标签: c file http io

基本上我正在进行html服务器分配,并且部分分配给出了“错误403 FORBIDDEN”消息,虽然我知道如何检查文件是否存在但如何检查它是否被禁止。

我正在做的是打开文件。

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

请让我知道我可以做些什么来检查文件是否被禁止。

2 个答案:

答案 0 :(得分:1)

禁止文件是不可能的我认为(例如chmod 440设置为没有运行服务器的用户),所以当你因为缺乏权限而无法打开文件时你可以通知用户c,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

答案 1 :(得分:0)

fopen()如果失败则返回空指针。根据库实现,可以设置全局变量errno以指示失败的原因。

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

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