stat関数を使用して、次の読み取り/書き込み権限を取得できます。
- オーナー
- ユーザー
- 他の
...しかし、これは私が望むものではありません。プロセス(つまり、作成しているアプリケーション)のファイルの読み取り/書き込み権限を知りたい。所有者/ユーザー/その他は、プロセスがファイルの所有者/ユーザー/その他として実行されているかどうかを知っている場合にのみ役立ちます...したがって、それが解決策かもしれませんが、そこに到達するための手順がわかりません。
getuid()
/を使用geteuid()
してプロセスのユーザーIDを決定し、同様にgetgid()
/getegid()
をグループIDに使用します。次に、ファイルの所有者/グループ(stat
またはから取得lstat
)と比較して、アクセス許可ビットを相互参照できます。
あなたはこれに使用したくありませんstat()
。あなたが使用access()
したい<unistd.h>
:
char const* name = "file";
if (access(name, R_OK)) {
std::cout << "'" << name << "' is readable\n";
}
if (access(name, W_OK)) {
std::cout << "'" << name << "' is writable\n";
}