基本上,我正在处理一个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>
)。如果没有,则可能由于与文件权限无关的其他错误而无法进行修复。
这是一个包含其他一些错误常量的页面,您可以进行检查。