Linux文件打开及创建(一)

<打开/创建文件>

//包含的头文件
# include csys/types.h>
# include <sys/stat.h>
# include <fcntL.h>

<Open函数>

int open(const char * pathname, int flags);
int open(const char * pathname, int flags, mode_t mode); 

open函数的返回值是一个小的非负整数,这个整数是被open打开的文件描述符。这个描述符在之后的操作中(比如写入,读取等操作)起到一个索引的作用,当描述的值等于 -1 的时候,证明打开文件失败。

<参数说明>

Pathname:要打开的文件名(含路径,缺省为当前路径)

flags:打开文件的方式与权限,一般来说有3种方式
O_RDONLY 只读打开  
O_WRONLY只写打开 
O_RDWR可读可写打开

以上这三个常数中应当只指定一个,下列常数是可选择的:

O_CREAT若文件不存在则创建它,需要同时说明第三个参数mode,用其说明该新文件的存取许可权限。
O_EXCL如果同时指定了O_CREAT,而文件已经存在,则出错。
O_APPEND每次写时都加到文件的尾端。
O_TRUNC使用属性去打开文件时,如果这个文件中本来是有内容的,而且为只读或只写成功打开,则将其长度截短为0。(简单来说就是将原文件的内容全部清除,将新文件内容)

open函数的使用方法:

int fd;//储存文件描述符
fd=open("./file",O_RDWR);//使用可读可写方式打开file

这样操作就打开了file,前提是file存在,如果file不存在则不执行。
如果file不存在,而我们又想打开file则需要我们建立file。
此时需要借助O_CREAT来创建:

int fd;//储存文件描述符
fd=open("./file",O_RDWR|O_CREAT);

mode的使用:一定是在 flags 中使用了O_CREAT标志,mode记录准备创建的文件的访问权限
在Linux操作系统中,对权限的描述:

权限类别英文指令数值
可读r4
可写w2
可执行x1
//int open(const char *pathname,int flags,mode_t mode);
int fd;//储存文件描述符
fd=open("./file",O_RDWR|O_CREAT,0600);//0600为mode的参数

其中0600,这里的6=4+2,可读加上可写的权限;如果是7,那么权限即为可读可写可执行。
而6后面的两个0,第一个为同组下的权限,最后一个0为其他组下的权限。

ls -l//查询文件权限

-rw-r--r-- 1 LPJ book   demo1.c
-rw------- 1 LPJ book   file
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值