简单的文件IO

今天我们来简单的介绍几个系统调用的函数,属于文件IO,比如说open等,先来看看open,注意它要用到的几个头文件以及

它的格式



先vim open.c,在里面简单open一个文件,后面跟几个标志,O_RDWR、O_CREAT、O_TRUNC分别是读写、创建和截去。




如果fd<0,表示open文件失败了,errno返回错误码,strerror(errno)返回错误的原因。



先看看memset,它是个库函数,它的作用是清零,注意它的格式和头文件





我们现用memset将buf清零,然后把hello写到fd打开的文件中,然后将它read到buf中,再打印buf的内容,最后close掉文件fd。




此时编译运行open.c,为什么没有显示文件的内容呢?是因为当前的文件偏移量没有搞对,指针指在hello的末尾,当然也就读不到内容了。




这时我们需要将指针指向hello的开头,需要用到lseek这个系统调用



我们在read之前加上一段lseek




这样我们就成功read到了hello,而且test.txt这个文件原来没有的,也创建成功了



最后我们将rename,也就是在程序中将文件改名




我们在close文件之后,再将其进行改名,将test.txt改为test.log。



最后我们再执行,发现hello也读到了,test.txt也被我们改名为test.log了。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜亚轲

你花钱的样子真帅

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值