linux Cのaccess()
950 ワード
ヘッダファイル:
#include
プロトタイプ:
int access(const char* path,int mode);
関数の説明:
modeはいくつかのケースを組み合わせることができます:R_OK、W_OK、X_OKとF_OK
R_OK、W_OK、X_OKファイルに読み取り、書き込み、実行の権限があるかどうかを確認するために使用されます.
F_OKは、そのファイルが存在するか否かを判断するために使用される.
1つのディレクトリが書き込み可能である場合は、そのディレクトリに新しいファイルを作成できるなどの操作を示します.
戻り値:
すべてのチェックしたい権限がチェックに合格した場合、0値を返し、成功を示します.1つの権限が禁止されている限り、-1を返します.
エラーコード:
EACCESSパラメータpathで指定されたファイルは、要求されたテストの権限に合致しません.EROFSが書き込み権限をテストしようとするファイルは、読み取り専用ファイルシステム内に存在する.EFAULTパラメータpathnameポインタがアクセス可能メモリ領域を超えています.EINVALパラメータmodeが正しくありません.ENAMETOOLONGパラメータpathname長すぎます.ENOTDIRパラメータpathnameはディレクトリです.ENOMEMコアメモリ不足ELOOPパラメータpathnameにマルチシンボル接続の問題がある.EIO I/Oアクセスエラー.
例:
cygwinでコンパイル:
gcc access.c -o access
実行:./access
#include
プロトタイプ:
int access(const char* path,int mode);
関数の説明:
modeはいくつかのケースを組み合わせることができます:R_OK、W_OK、X_OKとF_OK
R_OK、W_OK、X_OKファイルに読み取り、書き込み、実行の権限があるかどうかを確認するために使用されます.
F_OKは、そのファイルが存在するか否かを判断するために使用される.
1つのディレクトリが書き込み可能である場合は、そのディレクトリに新しいファイルを作成できるなどの操作を示します.
戻り値:
すべてのチェックしたい権限がチェックに合格した場合、0値を返し、成功を示します.1つの権限が禁止されている限り、-1を返します.
エラーコード:
EACCESSパラメータpathで指定されたファイルは、要求されたテストの権限に合致しません.EROFSが書き込み権限をテストしようとするファイルは、読み取り専用ファイルシステム内に存在する.EFAULTパラメータpathnameポインタがアクセス可能メモリ領域を超えています.EINVALパラメータmodeが正しくありません.ENAMETOOLONGパラメータpathname長すぎます.ENOTDIRパラメータpathnameはディレクトリです.ENOMEMコアメモリ不足ELOOPパラメータpathnameにマルチシンボル接続の問題がある.EIO I/Oアクセスエラー.
例:
#include<unistd.h>
int main()
{
if(access("test",W_OK) == 0)
printf("the file can be write
");
}
cygwinでコンパイル:
gcc access.c -o access
実行:./access