为什么这个C代码不能创建一个具有读写用户,组和其他权限的文件?

Blu*_*lub 2 c linux

为什么以下代码不会创建具有用户,组和其他权限读写权限的文件?

   char data[10] = "123456789";
   int fh = open("test.txt", O_RDWR|O_CREAT, 0666);
   write(fh, data, 10);
   printf(strerror(errno));
   close(fh);
Run Code Online (Sandbox Code Playgroud)

生成此文件:

-rw-r--r-- 1 pc users       9 Nov 15 16:15 test.txt
Run Code Online (Sandbox Code Playgroud)

那是什么意思?我特别要求所有类别的r + w.

tro*_*foe 6

在呼叫之前使用系统调用重置用户掩码.umask()open()