cp ユーティリティを模倣するプログラムを作成しています。ただし、ファイルのアクセス許可を正しく機能させることができません。stat
それらが構造体に格納され、st_mode
フィールドに格納されていることを知っていstat
ます。
私の問題は、グループまたは他のカテゴリの書き込み権限を取得していないことです。つまり-rwxr-xr-x
、ソース ファイルが-rwxrwxrwx
. パーミッションを設定したステートメントは以下のとおりです。
if ( (dest_fd = open(dest_file, O_WRONLY|O_CREAT, (stats.st_mode & S_IRUSR)|(stats.st_mode & S_IWUSR)|(stats.st_mode & S_IXUSR)|(stats.st_mode & S_IRGRP)|(stats.st_mode & S_IWGRP)|(stats.st_mode & S_IXGRP)|(stats.st_mode & S_IROTH)|(stats.st_mode & S_IWOTH)| (stats.st_mode & S_IXOTH))) < 0)
{
printf("There was a problem opening the destination file.");
exit(EXIT_FAILURE);
}//ends the if statement opening the destination file.