基本上我正在处理一个 html 服务器分配,部分分配给出了“错误 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
错误,因此在 failed 之后fopen()
,检查是否errno
等于EACCES
(记住#include <errno.h>
)。如果不是,它可能由于与文件权限无关的其他错误而无法打开。
这是一个页面,其中包含您可以检查的其他一些错误常量。