如何给每个人写权限?

How to give write permission to everybody?

运行以下代码后,文件 tasty 的权限位设置为 0700,这是意外的。

#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

int main()
{
    int fild = creat("tasty", 0722);
    close(fild);
    return 0;
}

如何让所有人都写入文件?

您的 shell 可能有一个 umask 022,这意味着创建的任何新文件都将清除指定的位(即组写入和其他写入)。

您需要在创建文件之前将 umask 设置为 0:

#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>

int main()
{
    umask(0);
    int fild = creat("tasty", 0722);
    close(fild);
    return 0;
}