我必须用C编写一个程序(在类似Unix的系统上),这是我的问题:
我有一个文件(FILE1),我想创建另一个具有FILE1相同权限的文件(FILE2)。然后,我必须创建另一个文件(FILE3),该文件具有与FILE1相同的权限,但仅适用于所有者。
我将使用chmod()更改权限,但我不了解如何获取FILE1的权限。
你能帮我么?
的stat()和fstat()功能检索struct stat,其包括部件st_mode指示文件模式,其中权限存储。
stat()
fstat()
struct stat
st_mode
您可以将此值传递给chmod()或fchmod()屏蔽掉非文件权限位:
chmod()
fchmod()
struct stat st; if (stat(file1, &st)) { perror("stat"); } else { if (chmod(file2, st.st_mode & 07777)) { perror("chmod"); } }