C++ mkdir系统调用创建权限0755而不是0777
我在使用mkdir系统调用时获得的权限有问题。我知道我说的没错,是八进制的。我已经测试过了,模式输入是一个整数,我可以用它来做数学运算,它的小数点肯定是511C++ mkdir系统调用创建权限0755而不是0777,c++,bash,c++11,unix,permissions,C++,Bash,C++11,Unix,Permissions,我在使用mkdir系统调用时获得的权限有问题。我知道我说的没错,是八进制的。我已经测试过了,模式输入是一个整数,我可以用它来做数学运算,它的小数点肯定是511 #include <sys/stat.h> #include <sys/types.h> #include <cstdlib> int main (int argc, char* argv[]) { if (mkdir(argv[argc-1], 0777) == -1) {
#include <sys/stat.h>
#include <sys/types.h>
#include <cstdlib>
int main (int argc, char* argv[]) {
if (mkdir(argv[argc-1], 0777) == -1) {
perror(argv[0]);
return EXIT_FAILURE;
} // if
return EXIT_SUCCESS;
} // main
当我使用mkdir实用程序或chmod或任何可以完美设置为0777的工具时。只是系统调用不起作用
它也适用于较小的权限,例如如果我将模式设置为0111。您的umask是0022
核对一下
$ umask
从你的壳里
在这种情况下,将umask设置为零
$ umask 0
然后用你的程序再试一次就是这样!谢谢@里德-一点也不。
$ umask 0