Linux系统编程---文件

Linux系统编程—文件

(师臣上官可编程)

open()

需要包含的头文件

#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>

参数

int open(const char *pathname, int flags);
       //文件路径(指针)         //权限(整型数)

这里open()函数会返回一个整型数称为文件描述符

int fd;
fd = open("./file1",O_RDWR);//在当前目录下可读可写打开file1文件

Flags:
O_RDONLY 只读打开
O_WRONLY 只写打开
O_RDWR 可读可写打开
这里的文件描述符就返回至fd;后续的操作都需要文件描述符,在Linux系统里有三个默认文件描述符即:
0:标准输入
1:标准输出
2:标准错误
所以默认返回的文件描述符是从3开始的,如果打开文件失败就会返回-1,如果目录下没有需要打开的文件可以使用:

open("./file1",O_RDWR|O_CREAT,0600);
//可以在O_RDWR后面加一个或,表示如果没有file1文件就建立一个可读可写文件file1

这里的0600表示可读可写权限,权限如下:

可读 — r —4
可写 — w —2
执行 —x —1

我们可以输入ls -l 查看文件详细信息

就可以看到文件权限,像上面代码用到的O_CREAT还有几个常数可以选择:
O_CREAT :若文件不存在则创建它,使用这个选项时,需要说明迪桑参数mode,说明新文件的权限。
O_EXCL:如果同时指定了O_CREAT,而文件已经存在,则出错
O_APPEND:每次写时都加到文件的尾端
O_TRUNC:如果这个文件中是有内容的,而且为只读或只写成功打开,则将气长度截短为0.

write()

需要包含的头文件

#include<unistd.h>

参数

ssize_t write(int fd, const void *buf, size_t count);

将缓冲区buf内存里的数据写count个字节写到文件描述符fd所指的文件里面去。

read()

需要包含的头文件

#include<unistd.h>

参数

ssize_t read(int fd, void *buf, size_t count)

文件描述符fd所指的文件里读取count个字节到buf里,如果读取成功的话返回一个整型数,表示读了多少个字节。

lseek()

光标定位函数

需要包含的头文件

#include<sys/types.h>
#include<unistd.h>

参数

off_t lseek(int fd, off_t offset, int whence);

作用:将文件读写指针相对whence移动offset个字节
offset:是偏移值,当offset为负数时光标向右移动,为正数时向左移动
whence:有以下几个宏:
SEEK_SET——文件头
SEEK_END——文件尾
SEEK_CUR——当前位置

lseek也常用于计算文件的大小:返回文件开始到偏移位置(文件尾部)的字节大小

size = lseek(fd,0,SEEK_END);

close()

close(fd);

关闭文件描述符所指的文件,对文件操作过后一定要记得关闭文件,不然会造成文件损坏。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值