Top > C言語 > access


リニューアル

サイトリニューアル中です。本ページは以下URLへ移動しました。
Prog.さな雑記

関数仕様

機能
ファイルに対する実ユーザーでのアクセス権をチェックする
書式
すべてを展開すべてを収束
  1
  2
  3
 
 
 
#include <unistd.h>
 
int access (const char *filepath, int mode);
引数
filepath : アクセス権をチェックするファイルのパス
    mode : チェックするアクセス権 (R_OK, W_OK, X_OK, F_OK)
戻り値
0  : 引数指定のアクセス権がある
-1 : 引数指定のアクセス権が無い、又はエラーが発生
フラグ
フラグ意味
R_OK読み出し許可とファイルの存在をチェック
W_OK書込み許可とファイルの存在をチェック
X_OK実効許可とファイルの存在をチェック
F_OKファイルの存在をチェック

注意

このアクセス権のチェックは他のシステムコールとは異なり、access を呼び出したプロセスの実効ユーザー、実効グループではなく、実ユーザー、実グループの権限で行われる。例えば、root にセットユーザーIDされたコマンドの中から access が呼び出されたとしても、root 権限ではなく、元のユーザーでの権限でアクセス権のチェックが行われる

サンプル

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 
 
 
 
 
 
-
|
|
-
|
|
!
|
|
|
!
#include <unistd.h>
#include <stdio.h>
 
#define FILE_PATH "./test.dat"
 
int
main (void)
{
  /* 読み込み許可と実効許可があるかをチェック */
  if (access (FILE_PATH, (R_OK | X_OK)))
    {
      perror ("access");
      return -1;
    }
 
  printf ("Confirm result (R_OK | X_OK): PASS!\n");
  return 0;
}

リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sun, 10 Oct 2021 04:38:42 UTC (920d)