如何从已存在的文件复制权限?

Ash*_*eyT 2 c unix linux file-permissions

我必须用C编写程序(在类Unix系统上),这是我的问题:

我有一个文件(FILE1),我想创建另一个文件(FILE2),它具有相同的FILE1权限.然后我必须创建另一个文件(FILE3),它具有相同的FILE1权限,但仅限于所有者.

我会使用chmod()来更改权限,但我不明白如何获取FILE1的权限.

你能帮我么?

caf*_*caf 7

stat()fstat()功能检索struct stat,其包括部件st_mode指示文件模式,其中权限存储.

您可以将此值传递给掩盖非文件权限位chmod()fchmod()之后:

struct stat st;

if (stat(file1, &st))
{
    perror("stat");
} 
else
{
    if (chmod(file2, st.st_mode & 07777))
    {
        perror("chmod");
    }
}
Run Code Online (Sandbox Code Playgroud)