我正在编写一个程序来模仿 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.