fseek与rewind到底有何区别

在C语言中,设置文件位置到文件头时,可以选择fseek或rewind。本文探讨了两者接口的区别,错误处理的优劣以及运行库实现的细节。尽管在glibc中它们最终都调用同样的函数,但rewind没有返回值,可能导致错误处理困难,而fseek则提供了检查错误的可能性。因此,根据错误处理需求,可以选择使用rewind追求简洁,或选择fseek确保未来扩展性。
摘要由CSDN通过智能技术生成

c接口设置到文件头

当我们要设置文件位置为给定流 stream 的文件的开头时,其实我们有两种选择,
直接调用rewind函数,
rewind(fp);
或者使用fseek
fseek(fp,0L,SEEK_SET);

那么这两者有什么区别呢?我们从接口本身的使用和实现两个反面来说。

接口本身的区别

首先,从接口本身来说,rewind是没有返回值的,看下边的示例代码,这段代码会有一个问题,那就是一旦rewind失败程序应该如何处理呢?

#include <stdio.h>

int main ()
{
   
  int n;
  FILE * pFile;
  char buffer [27];

  pFile = fopen ("myfile.txt","w+");
  for ( n='A' ; n<='Z' ; n++
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值