0

C を使用してファイルのアクセス許可を見つけるにはどうすればよいですか?

私はファイルコピープログラムを作成していますが、新しいファイルにファイルのアクセス許可を複製しないことを除いて、すべて正常に動作します。

現在、私は fcntl.h と open() と creat() を使用してファイルを開き、宛先ファイルを作成していますが、権限が失われています。

ファイルのアクセス許可を 0644 や 0777 などの数値で読み取ることができるコマンドを望んでいたので、その数値を creat() で使用してそのファイルを作成します。そのようなコマンドは存在しますか?

EDIT すべての助けをありがとう、私は次のコードで動作しました

struct stat status;
mode_t permissions;
stat("path_to_file", &status);
permissions = status.st_mode;' 

次に、creat(); 内でパーミッションを使用します。

4

3 に答える 3

1

statを使用します。

上記のリンクは、サンプル コードも提供します。

/* Print out type, permissions, and number of links. */
printf("%10.10s", sperm (statbuf.st_mode));
printf("%4d", statbuf.st_nlink);
于 2013-08-30T11:27:17.423 に答える
0

stat()関数は必要なものを取得します: http://linux.die.net/man/2/stat

umask()ただし、 ( http://linux.die.net/man/2/umask ) が実際に使用されるパーミッションに影響することに注意してください。

于 2013-08-30T11:27:27.120 に答える