Linux学习(6)文件描述符(操作文件调用系统)

本章学习内容:

1.c语言中fopen、fwrite、fread、fclose等文件操作库函数与linux系统的open、write、read、close等文件操作符的关系

2.linux文件操作系统相关参数介绍

3.实现一个自己的cp操作指令(mycp)

一、c语言文件操作库函数与Linux系统文件操作符区别

C语言中,操作文件的库函数实现本质为通过库函数调用系统的文件操作符

Linux系统中,文件操作的系统调用实现在内核中,直接通过调用系统实现

简单可以理解为fwrite通过操作write实现写操作

二、linux文件操作相关参数介绍

1.通过程序创建一个文件,并设置访问权限

首先要知道open打开文件、write写文件、read读文件、close关闭文件

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

open返回值为int类型,第一个参数:文件名字,第二个参数:文件操作方式(读、写等),第三个参数:文件权限

文件操作方式(flags)有:O_WRONLY只打开、O_RDONLY只读、O_RDWR读写方式打开、O_CREAT文件不存在创建、O_APPEND文件末尾追加、O_TRUNC清空文件,重新写入等

文件权限:在linux操作面板输入man open下滑查看,此处只讲0600读写权限

2.C代码实现打开(创建)读写文件

(1)创建并向文件写入内容

main函数代码如下

 

 编译后自动创建文件并写入

 (2)读文件中的内容

main函数代码如下

这里我们使用num来存放读取的字符的长度,由此可知read返回值为读取的长度

读取文件完成

读出文件a.txt内容,长度为6(这里6的原因为字符串以/0结尾,所以还有一个/0但不显示)

三、 实现一个自己的cp操作指令(mycp)

1.在实现mycp操作指令前我们先实现一个用C语言代码进行文件复制

首先我们随意复制一份别的文件

此处我们复制的文件名称为passwd

main函数如下

 运行结果如下

生成newfile文件

 

 newfile文件内容和passwd文件内容一模一样

查看两个文件大小也相等,所以文件复制成功

2.实现自己的操作指令mycp

main函数代码如下

执行mycp

 

新文件大小与原文件相等

 

实现成功 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值