【C 语言】文件操作 ( fseek 使用注意事项 | fseek 函数返回值分析 )
文章目录
- 一、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 函数返回值分析 )相关推荐
- linux如何拿到文件的返回值,linux 下read函数返回值分析
原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003 read函数是Linux下不带缓存的文 ...
- [C语言]文件操作(File Operations)
目录 文件操作:: 1.文件的定义 2.文件的打开和关闭 3.文件的顺序读写 4.文件的随机读写 5.文件读取结束的判定 6.文件缓冲区 文件操作:: 1.文件的定义 文件的定义: 在程序设计中,文件 ...
- C语言——文件操作函数 fseek、ftell、rewind详解
前言 前面,我讲了讲文件操作的第二步:文件的读写操作,里面详细的介绍了各类读写函数的用法,有兴趣的小伙伴可以去看看: C语言--文件操作(2)文件的读写操作_ 接下来,我再来讲一讲关于标题中这三个函数 ...
- C语言文件操作解析(二)【转载】
http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...
- C语言文件操作解析(二)
C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为 FILE* fopen(const char *path,const cha ...
- C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...
- c语言计算文件摘要值,c语言文件操作摘要.ppt
c语言文件操作摘要 第十章 文件 10.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 非 ...
- c语言文件操作函数(未完待续)
while(!feof(fp1)),使用feof()的时候会比你期望的多执行一次.因为它检测到结尾的'\0',时仍然不是文件的结尾,所以会继续执行一次.为解决这个问题,可以先读,在判断,然后打印 fr ...
- ios怎么打开c语言文件操作函数,C++ ofstream和ifstream详细用法以及C语言的file用法...
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个"流"类为基础的,包括我们 ...
- 基于存储的C语言文件操作常规问题分析(文本文件与二进制文件)
基于存储的C语言文件操作常规问题分析(文本文件与二进制文件) 问题描述 文本文件与二进制文件 数据写入文本乱码问题 fopen和open 流式文件操作常用函数 直接I/O文件操作常用函数 问题描述 我 ...
最新文章
- 快速排序(quick sort) C++
- C/C++ 之 应用程序的编译过程
- 关系数据库SQL之基本数据查询:子查询、分组查询、模糊查询
- router vue 动态改变url_vue动态路由
- linux gcc编译器误用-MM导致出现linker input file unused because linking not done
- 将一个十六进制数的字符串参数转换成整数返回
- ueditor编辑器初始化
- iOS开发之结构体底层探索
- 【22】基于java的电影院售票管理系统
- MySQL中MGR中SECONDARY节点磁盘满,导致mysqld进程被OOM Killed
- qt 获取屏幕句柄_VC中获取窗口句柄的各种方法
- 计算机表格计算公式加法,加法公式excel,excel表格如何用公式计算加减乘除混合运算?...
- matlabGUI入门
- dw新建html快捷键,DW软件新建一个html网页
- Composer Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
- java+字节码工具64位_javassist:字节码编辑器工具
- Notes Twenty-third days-渗透攻击-红队-红队自研
- 如何进行SEO站内优化,让你的网站更易被搜索引擎收录
- win10系统如何设置局域网服务器,小编解决win10系统设置局域网的解决方法
- 完美解决丨 - [SyntaxError: invalid syntax](#SyntaxError-invalid-syntax)