Linux文件编程

1.嵌入式Linux系统开发:通过内核和内核提供的服务实现相应的功能
嵌入式LinuxC开发相当于“会看使用说明书”
2.Linux系统构成:用户空间,内核空间(为了保护内核的访问安全)
用户空间不能随便访问内核空间
划分空间的目的:保护内核空间不能被用户空间随便访问
3.系统调用:内核提供的安全访问机制;硬件中断,软件中断
作用:使用户空间可以访问内核空间并获取服务
4.用户如何发送系统调用?
调用系统提供的函数接口
API:用户编程接口
5.文件id
动态分配 只有当操作这个文件时,系统才会给你分配文件描述符
非负整数:从3编号开始
0,1,2这三个文件描述符有其他作用
6**.creat**创建文件
所需头文件:
#include<sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

S_IRUSR 可读
S_IWUSR
S_IXUSR 可执行
S_IRWXU 可读可写可执行

调用完一个函数要检查是否成功
检查错误使用perror(自动换行)
在这里插入图片描述
7.open函数
pathname:被打开文件名(可包括路径名,缺省时为当前目录)
flags:文件打开的方式,参数可以通过“|”组合构成,但前3个参数不能互相重合。
O_REONLY:只读方式打开文件
O_WRONLY:可写方式打开文件
O_RDWR:读写方式打开文件
O_CREAT:如果文件不存在时就创建一个新文件,并用第三个参数为其设置权限。
O_EXCL:如果使用O_CREAT时文件存在,则可返回错误信息。这一参数可测试文件是否存在。
O_NOCTTY:使用本参数时,如文件为终端,那么终端不可以作为调用open()系统调用的那个进程的控制终端。
O_TRUNC:如文件已经存在,并且以只读或只写成功打开,那么会先全部删除文件中原因数据。
O+APPEND:以添加方式打开文件,在打开文件的同时,文件指针指向文件末尾。
mode _t mode:被打开文件的存取权限,为8进制表示法(调用O_CREAT才需要)。
函数返回值:成功:返回文件描述符

失败:-1
在这里插入图片描述
运行结果
在这里插入图片描述
可以用open代替creat操作
8.write 函数
int write(int fd,void*buf,size_t length)
所需头文件:#include<unistd.h>
函数传入值:
fd:文件描述符
Buf:指定存储器写入数据的缓冲区
length:指定读出的字节数
函数返回值:成功:已写的字节数-1:出错

man手册里函数的使用方法
在这里插入图片描述
在这里插入图片描述

memset(buffer,0,sizeof(buffer))

这起到一个清空的作用

lseek 控制读写位置
9.
偏移函数:int lseek(int fd,off_t offset,int whence)
所需头文件:#include<unistd.h>
#include<sys/types.h>
函数传入值:
fd:文件描述符
Offset:偏移量,每一读写操作所需要移动的距离,单位是字节的数量,可正可负(向前移,向后移)
Whence:当前位置的基点:
SEEK_SET:当前位置为文件开头,新位置为偏移量的大小
SEEK_CUR:当前位置为文件指针位置,新位置为当前位置加上偏移量
SEEK_END:当前位置为文件的结尾,新位置为文件的大小加上偏移量大小

     返回值:      成功:文件相对开头的当前位移

原生态函数不够用时要学会自己封装函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值