ファイルのアクセス権限をチェックするにはaccessを使う。
呼び出し元プロセスから見てアクセスできるかを判定する模様。
(基本的に実行したユーザってことかな・・・。)
test.txtを普通に作った時のアクセス権限をチェックする。
第2引数が、R_OKで読み込みのみチェック、W_OKで書き込みのみチェック、X_OKで実行のみのチェック。
$ pwd /home/bg1/project/cloud/github.com/Sample/unixsyscall/access/access/src/access $ vi access.c $ gcc access.c -o access $ vi test.txt $ ls -al 合計 36 drwxrwxr-x. 2 bg1 bg1 4096 9月 29 19:12 . drwxrwxr-x. 3 bg1 bg1 4096 9月 29 18:59 .. -rwxrwxr-x. 1 bg1 bg1 18384 9月 29 19:12 access -rw-rw-r--. 1 bg1 bg1 1470 9月 29 19:12 access.c -rw-rw-r--. 1 bg1 bg1 6 9月 29 19:12 test.txt $ ./access Read OK Write OK Exec NG $
test.txtは664なので、読み込み書き込みは可能だが実行はできない。
Sample/unixsyscall/access/access/src/access at master · bg1bgst333/Sample · GitHub