文件I/O(1)

 lseek函数:

off_t lseek(int fd ,off-t offset, int whence) 

调用#include <sys/types.h>和#include <unistd.h>头文件可使用该函数,该函数调用成功会放回新的文件位移量,若出错为-1

参数:

          fd:已打开文件的描述符。

          offset:位移量

          whence :定位的位置

                         SEEK_SET:将该文件的位移量设置为距文件开始出offset个字节

                         SEEK_CUR:将该文件的位移量设置为距文件当前值加offset,offset可为正或负,正就往前,负即往后。

                          SEEK_END:将该文件的位移量设置为文件长度加offset,亦可正科负

lseek 不能引用管道或者FIFO,则返回-1

例:若使用下面函数:lseek(fdin, 0L, SEEK_END),就可以读出真个文件的长度,在我的理解中,这偏移量就是到你指定位置的部分大小。

 如果在文件的尾部写的话会怎样呢?会产生空洞,什么是空洞呢?来试验一下:写一个程序测试一下,

运行结构如下:

运行后在新的文件可以看到,两个0123456789之间有一段是什么都没有的,这是文件中的空洞部分

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值