open创建文件后,再读取出现Permission denied错误

函数 open(char *pathname, int flag, mode_t mode),当flag 指定有O_CREAT并忽略mode参数,在下次打开文件时,可能会提示没有权限之 类的错误

原因:这样创建的文件权限是随机的,如果要指定创建的文件权限,就需要填写 mode 参数,这个参数是指定文件权限的,文件的权限分3组9位(rwx rwx rwx--对应用户,用户所在组,其它用户), mode 的值用4位表示,为3每组权限的和值。

另外还有一个 umask 函数,这个函数是权限屏蔽,和 mode值 正好相反。

原文地址:https://www.cnblogs.com/pswzone/p/2446623.html