0

stat関数を使用して、次の読み取り/書き込み権限を取得できます。

  • オーナー
  • ユーザー
  • 他の

...しかし、これは私が望むものではありません。プロセス(つまり、作成しているアプリケーション)のファイルの読み取り/書き込み権限を知りたい。所有者/ユーザー/その他は、プロセスがファイルの所有者/ユーザー/その他として実行されているかどうかを知っている場合にのみ役立ちます...したがって、それが解決策かもしれませんが、そこに到達するための手順がわかりません。

4

3 に答える 3

2

getuid()/を使用geteuid()してプロセスのユーザーIDを決定し、同様にgetgid()/getegid()をグループIDに使用します。次に、ファイルの所有者/グループ(statまたはから取得lstat)と比較して、アクセス許可ビットを相互参照できます。

于 2012-09-23T21:32:01.000 に答える
2

あなたはこれに使用したくありません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";
}
于 2012-09-23T21:34:53.237 に答える
1

このようなもの:

if ( access( filename, W_OK )) { /* writable */ }

を参照してくださいaccess(2)

于 2012-09-23T21:33:49.707 に答える