1、功 能

重定位流( 数据流/文件)上的 文件内部位置 指针

注意:不是 定位文件指针,文件指针指向文件/流。位置 指针指向文件内部的字节位置,随着文件的读取会移动, 文件指针如果不重新赋值将不会改变指向别的文件。

2、用 法

int fseek(FILE *stream, long offset, int fromwhere);

3、描 述

函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置: 文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset( 指针 偏移量)个字节的位置。如果执行失败( 比如offset超过文件自身大小),则不改变stream指向的位置。

fseek 函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。

4、返回值

成功,返回0,失败返回-1,并设置errno的值,可以用perror()函数输出错误。

代码示例1:

#include <stdio.h>
#include <stdlib.h>int main(void)
{char wr_buf[] = "Linux应用编程,开心快乐每一天!"; char second[] = "I LOVE LINUX!";  FILE *fp = NULL;if (NULL == (fp = fopen("test_file.txt", "w+"))){perror("fopen error");exit(-1);}printf("文件打开成功!\n");if (sizeof(wr_buf) >fwrite(wr_buf, 1, sizeof(wr_buf), fp)){printf("fwrite error\n");fclose(fp);exit(-1);}printf("数据写入成功!\n");/*    if (0 > fseek(fp, 0, SEEK_SET)){perror("fseek error");fclose(fp);exit(-1);} */ fwrite(second, 1, sizeof(second), fp);  exit(0);
}

运行结果:首先通过fopen函数打开文件,再通过fwrite函数向fp文件中写入"Linux应用编程,开心快乐每一天!";最后通过fwrite函数向fp文件中写入"I LOVE LINUX!"

代码示例2:

#include <stdio.h>
#include <stdlib.h>int main(void)
{char wr_buf[] = "Linux应用编程,开心快乐每一天!";char second[] = "I LOVE LINUX!";FILE *fp = NULL;if (NULL == (fp = fopen("test_file.txt", "w+"))){perror("fopen error");exit(-1);}printf("文件打开成功!\n");if (sizeof(wr_buf) >fwrite(wr_buf, 1, sizeof(wr_buf), fp)){printf("fwrite error\n");fclose(fp);exit(-1);}printf("数据写入成功!\n");if (0 > fseek(fp, 0, SEEK_SET)){perror("fseek error");fclose(fp);exit(-1);}fwrite(second, 1, sizeof(second), fp);   exit(0);
}

运行结果:首先通过fopen函数打开文件,再通过fwrite函数向fp文件中写入"Linux应用编程,开心快乐每一天!";通过fseek(fp, 0, SEEK_SET)函数将文件指针转移到文件起始位置,通过fwrite函数向fp文件中写入"I LOVE LINUX!",这个字符串将覆盖"Linux应用编程,开心快乐每一天!"

linux fseek函数用法详解相关推荐

  1. linux signal用法,Linux 信号 signal 用法详解及注意事项

    Linux 信号 signal 用法详解及注意事项 1) SIGHUP 本信号在用户终端连接 (正常或非正常) 结束时发出, 通常是在终端的控 制进程结束时, 通知同一 session 内的各个作业, ...

  2. linux fork 用法,Linux系统调用fork()用法详解

    linux 系统调用fork()的用法详解 Linux系统调用fork()用法详解 1. 先看下面代码: #include #include //pid_t类型定义 #include //函数fork ...

  3. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  4. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  5. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  6. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  7. mysql: union / union all / 自定义函数用法详解

    mysql: union / union all http://www.cnblogs.com/wangyayun/p/6133540.html mysql:自定义函数用法详解 http://www. ...

  8. python中mat函数_Python中flatten( )函数及函数用法详解

    flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列 ...

  9. ROW_NUMBER() OVER()函数用法详解

    今天同事问了一个关于插入表的问题,对象:被插入表sys_equi_disorg   A  , 查询表sys_equi_dict   B 因为A表的ID不是自增的,并且不能更改表结构,主键默认值还是0, ...

最新文章

  1. 统计学习方法笔记 -- 概论
  2. C#访问Access和Win7 64位下可能遇到的 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序 问题
  3. 安卓逆向_10 --- Log 日志的插入和分析、toast方法、栈跟踪
  4. bootstrapt学习指南_bootstrap-知识点梳理-学习入门篇
  5. 《深入解析IPv6(第3版)》——10.5 失效网关检测
  6. python交换模式、vim模式TAB自动补齐
  7. 计算机组成原理第9章,计算机组成原理第9章习题参考答案
  8. GD32F103入门实践(一)配置环境,搭建工程模板,烧写程序
  9. java实现在线预览--poi实现word、excel、ppt转html
  10. 李健清华计算机专业,计算机DeepWeb数据库的分类研究李健
  11. 五十个产品可靠性性能提高的方法详解
  12. 青龙-闪电世界(脚本更新)
  13. 如何快速剪辑多个视频,将视频分段保存导出播放
  14. 掩膜裁剪tif步骤_ENVI中掩膜掩膜操作及影像分类教程(转)
  15. 石头扫地机器人卡顿_80后手残党动手修理石头扫地机器人激光头卡死故障
  16. 苏州软件类企业在高新技术企业认定中的要点分析
  17. 浅析安科瑞无线测温装置在香港科技大学配电系统中的设计应用
  18. SegmentFault 社区访谈 | 依云: 一只想依偎在云上的野百合
  19. 浅谈道路监控杆的安装注意事项
  20. html5 canvas视频放大

热门文章

  1. kafka streams学习笔记
  2. 向全业务融合计费平滑演进
  3. 解决Reiserfs文件系统损坏的问题我们是认真的
  4. reiserfs分区配置
  5. go get安装指定版本报错:major version must be compatible: should be v0 or v1, not v2
  6. ws(websocket)协议
  7. echarts中toolbox位置_echarts toolBox工具栏
  8. NLP——Tokenizer
  9. 花授粉优化算法及代码实现
  10. 将.docx文件中的图片批量加水印