文件I/O操作

lseek

函数返回值:

成功:文件的当前位移

-1:出错

注意:

通常文件的当前偏移应当是一个非负整数,但是,某些设备也可能允许负的偏移量。但对于普通文件,则其偏移量必须是非负值。因为偏移量可能为负值,所以在比较lseek的返回值时应当谨慎,不要测试它是否小于0,而要测试它是否为-1。

 

标准I/O开发

是基于流缓冲的,它是符合ANSI C的标准IO处理。

标准I/O提供流缓冲的目的是尽可能减少使用read和write调用的数量。标准I/O提供了3种类型的缓冲存储。

全缓冲

在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。驻在磁盘上的文件通常是由标准I/O库实施全缓冲的。在一个流上执行第一次I/O操作时,通常调用malloc就是使用全缓冲。

 

行缓冲

在这种情况下,当在输入和输出中遇到新行符时,标准I/O库执行I/O操作,这允许我们一次输出一个字符(如fputc函数),但只有写了一行之后才进行实际I/O操作。当流涉及一个终端时(例如标准输入和标准输出),典型地使用行缓冲。

 

不带缓冲

标准I/O库不对字符进行缓冲。如果用标准I/O函数写若干字符到不带缓冲的流中,则相当于用write系统调用将这些字符写到打开的文件上。标准出错stderr通常是不带缓存的,这就使得出错信息可以尽快显示出来。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值