用fopen打开文件时如何设置文件的权限。

maenxiang 2003-02-24 11:59:57
用fopen打开文件时如何设置文件的权限及文件的用户id
...全文
2382 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
maenxiang 2003-02-25
  • 打赏
  • 举报
回复
ok 还有什么好方法。
sunriselx 2003-02-25
  • 打赏
  • 举报
回复 1
FILE* fp = fopen();
int fd = fileno(fp);
fchmod(fd, 0664);

OK?
maenxiang 2003-02-24
  • 打赏
  • 举报
回复
感谢各为的回答,我的意思可能没有表述清楚。我重新表述以下:
是在UNIX下用C编程,不是DOS WINDOWS
我是想用fopen打开文件(文件还不存在,是用来创建文件),怎么样给新建的文件赋上相应权限(相当于chmod的那种权限)。
例如:
char ini_path[]="smindb.ini";
int ini_handle;
ini_handle=open(ini_path,O_WRONLY|O_CREAT|O_APPEND,S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

怎么用fopen创建文件时也将S_IRUSR S_IWUSR S_IRGRP S_IROTH权限赋给文件"smindb.ini"呢?

或者有什么其他方式可以实现,总之我要用缓冲方式打开文件。




积木 2003-02-24
  • 打赏
  • 举报
回复
没有这个参数,你只能自己另外写判断,因为dos 或 windows 都没有给文件设置用户(不像Linux),写一个简单的,你看看吧,呵呵
char* pass(char* user_name)/*根据用户名取密码*/
int user_file(char * filename,char* user_name char* password)/*判断权限*/
{
if(!strcmp(pass(user_name),password))
return 0;
FILE* fp = fopen(filename,"r");
/*操作*/
fclose(fp);
return 1;
}
rtdb 2003-02-24
  • 打赏
  • 举报
回复
支持楼上。

要想更详细的设定, 还是用OpenFile吧。
blh 2003-02-24
  • 打赏
  • 举报
回复
1.权限
r Open text file for reading. The stream is positioned at the beginning of
the file.

r+ Open for reading and writing. The stream is positioned at the beginning of
the file.

w Truncate file to zero length or create text file for writing. The stream is
positioned at the beginning of the file.

w+ Open for reading and writing. The file is created if it does not exist,
otherwise it is truncated. The stream is positioned at the beginning of the
file.

a Open for writing. The file is created if it does not exist. The stream is
positioned at the end of the file.

a+ Open for reading and writing. The file is created if it does not exist.
The stream is positioned at the end of the file.

2。int fchown(int fd, uid_t owner, gid_t group);

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧