0

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

我正在做的是打开文件。

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

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

4

2 回答 2

1

我认为禁止的文件是无法访问的(例如 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

于 2013-02-14T03:22:40.953 回答
0

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

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

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

于 2013-02-14T03:38:55.633 回答