文章目录

  • 一、fseek 函数返回值分析
  • 二、fseek 函数返回值分析代码示例

一、fseek 函数返回值分析


fseek 函数原型如下 : 重新设置文件内部指针的位置 ;

#include <stdio.h>
int fseek(FILE *stream, long offset, int fromwhere);

设置的指针的位置是 起始位置 + 偏移量 ;

其中的 int fromwhere 参数就是 起始位置 , 有以下三种选择 :

  • 文件头 SEEK_SET 0
  • 当前位置 SEEK_CUR 1
  • 文件尾 SEEK_END 2

long offset 偏移量参数 , 可以为正数 , 也可以为负数 ;

如果执行成功 , 则返回 0 , 失败返回非 0 , 并设置 error 错误代码 ;

fseek() 函数的返回值 , 如果正向偏移位置超出文件末尾 , 其返回值仍返回 0 , 反向偏移位置如果超过文件开始位置 , 仍然返回 0 ;

fseek() 函数的返回值 , 如果返回 0 , 要确认是否超过了文件的首尾范围 , 如果没有超过则指针偏移成功 , 如果超过了文件范围 , 则没有任何意义 ;

fseek 函数返回值为 0 , 并不代表操作完全正确 ;

二、fseek 函数返回值分析代码示例


代码示例 : 验证将文件指针指向超出文件末尾的位置 , fseek() 函数的返回值仍然是 0 ;

#include <stdio.h>int main()
{// 以写文本的方式向文件中写出数据FILE *p = fopen("D:/File/number.dat", "w");// 写出 10 个字符char array[10] = {1,2,3,4,5,6,7,8,9,10};// 将 10 个字符写出到文件中fwrite(array, 1, sizeof(array), p);// 关闭文件fclose(p);// 跳过 4 字节读取文件 2 字节FILE *p2 = fopen("D:/File/number.dat", "r");// 跳过 400 字节int res = fseek(p2, 400, SEEK_SET);// 打印 fseek 返回结果printf("fseek res = %d\n", res);return 0;
}

执行结果 :

【C 语言】文件操作 ( fseek 使用注意事项 | fseek 函数返回值分析 )相关推荐

  1. linux如何拿到文件的返回值,linux 下read函数返回值分析

    原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003 read函数是Linux下不带缓存的文 ...

  2. [C语言]文件操作(File Operations)

    目录 文件操作:: 1.文件的定义 2.文件的打开和关闭 3.文件的顺序读写 4.文件的随机读写 5.文件读取结束的判定 6.文件缓冲区 文件操作:: 1.文件的定义 文件的定义: 在程序设计中,文件 ...

  3. C语言——文件操作函数 fseek、ftell、rewind详解

    前言 前面,我讲了讲文件操作的第二步:文件的读写操作,里面详细的介绍了各类读写函数的用法,有兴趣的小伙伴可以去看看: C语言--文件操作(2)文件的读写操作_ 接下来,我再来讲一讲关于标题中这三个函数 ...

  4. C语言文件操作解析(二)【转载】

    http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...

  5. C语言文件操作解析(二)

    C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为 FILE* fopen(const char *path,const cha ...

  6. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  7. c语言计算文件摘要值,c语言文件操作摘要.ppt

    c语言文件操作摘要 第十章 文件 10.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 非 ...

  8. c语言文件操作函数(未完待续)

    while(!feof(fp1)),使用feof()的时候会比你期望的多执行一次.因为它检测到结尾的'\0',时仍然不是文件的结尾,所以会继续执行一次.为解决这个问题,可以先读,在判断,然后打印 fr ...

  9. ios怎么打开c语言文件操作函数,C++ ofstream和ifstream详细用法以及C语言的file用法...

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个"流"类为基础的,包括我们 ...

  10. 基于存储的C语言文件操作常规问题分析(文本文件与二进制文件)

    基于存储的C语言文件操作常规问题分析(文本文件与二进制文件) 问题描述 文本文件与二进制文件 数据写入文本乱码问题 fopen和open 流式文件操作常用函数 直接I/O文件操作常用函数 问题描述 我 ...

最新文章

  1. 快速排序(quick sort) C++
  2. C/C++ 之 应用程序的编译过程
  3. 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询
  4. router vue 动态改变url_vue动态路由
  5. linux gcc编译器误用-MM导致出现linker input file unused because linking not done
  6. 将一个十六进制数的字符串参数转换成整数返回
  7. ueditor编辑器初始化
  8. iOS开发之结构体底层探索
  9. 【22】基于java的电影院售票管理系统
  10. MySQL中MGR中SECONDARY节点磁盘满,导致mysqld进程被OOM Killed
  11. qt 获取屏幕句柄_VC中获取窗口句柄的各种方法
  12. 计算机表格计算公式加法,加法公式excel,excel表格如何用公式计算加减乘除混合运算?...
  13. matlabGUI入门
  14. dw新建html快捷键,DW软件新建一个html网页
  15. Composer Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
  16. java+字节码工具64位_javassist:字节码编辑器工具
  17. Notes Twenty-third days-渗透攻击-红队-红队自研
  18. 如何进行SEO站内优化,让你的网站更易被搜索引擎收录
  19. win10系统如何设置局域网服务器,小编解决win10系统设置局域网的解决方法
  20. 完美解决丨 - [SyntaxError: invalid syntax](#SyntaxError-invalid-syntax)

热门文章

  1. 学习马士兵Java教程
  2. 思科交换机配置试题_思科交换机基本配置命令全集
  3. 利用SWT做Java版局域网QQ(一)——基于UDP协议
  4. FastStone Capture 9.3 汉化绿色便携版 - 极品屏幕截图工具
  5. web打印实现几种方法
  6. 机械硬盘与互联网文明
  7. 推荐系统的4个方面完全总结
  8. 网易新闻APP、喜马拉雅APP数据接口
  9. 软考网络工程师考试网络协议
  10. 七牛云对象存储实现文件的上传与下载