当前位置:  开发笔记 > 前端 > 正文

如何在C中最近创建的文件夹和文件中获得读取权限?

如何解决《如何在C中最近创建的文件夹和文件中获得读取权限?》经验,为你挑选了1个好方法。

我已经创建了一个文件夹,在我打开该文件夹内的文件之后就写了一个文件.碰巧之后,我尝试打开文件,但我没有权限,因此我必须手动更改它.

/* str1 has tha name of the folder */
/* str the bytes I want to write in the file inside the folder*/
...

   mkdir(str1,0777);    
   if (filefd < 0) { 

      strncpy(auxstr, str, MAX_MSG + 1);
      strcat(str1,"\\");
      strcat(str1, auxstr);
      filefd = open (str1, O_RDWR | O_CREAT | O_TRUNC);

      nbytes -= (strlen(str) + 1);
      memcpy(auxstr, &str[strlen(str)+1], nbytes); 
      memcpy(str, auxstr, nbytes);

   }

   /*write to the file */
   if ((nwritten = write(filefd, str, nbytes)) != nbytes) {
       printf ("can't write on file\n");
       break;
   }

为了拥有打开创建文件的权限,我应该更改什么?

非常感谢,


:■

with = 0_CREATE I STILL存在无权读取文件的问题.我必须手动设置它们


我已经开放了0_CREAT

open(str1,O_RDWR | O_CREAT | O_TRUNC);



1> CesarB..:

你忘记了第三个参数open().

open()with 的第三个参数O_CREAT恰恰是新创建的文件具有的权限.

参考文献:

http://www.opengroup.org/onlinepubs/009695399/functions/open.html

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有