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()失敗した場合はnullポインタを返します。errnoライブラリの実装によっては、失敗の原因を示すためにグローバル変数が設定される場合があります。

通常、無効なファイルパーミッションはEACCESエラーの原因となるため、失敗した後、が等しいfopen()かどうかを確認してください(覚えておいてください)。そうでない場合は、ファイルのアクセス許可に関係のない他のエラーが原因で開くことができない可能性があります。errnoEACCES#include <errno.h>

これは、チェックできる他のエラー定数のページです

于 2013-02-14T03:38:55.633 に答える