fseek函数的用法linux,C 库函数 - fseek()函数

2023-10-14 21:10

本文主要是介绍fseek函数的用法linux,C 库函数 - fseek()函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先查看一下linux用户使用手册

5820f600082f730f2112d031fce9d6a1.png

7db7517d3622ddfbec472062af6eefc8.png

2e15f13e8f316dfda3d144702ec01d15.png

9640891f9bbddb2c13105cba2896fd2a.png

函数名:fseek

头文件:#include

功能:把与stream 有关的读写文件位置指针放到一个指定位置。

参数:FILE *stream :使用fopen打开的文件指针stream

long offset : 偏移位置(以字节为单位)

int whence :基准位置,它一般指定为下列常量之一:

起始点对应的数字代表的文件位置

SEEK_SET0文件开头

SEEK_CUR1文件当前位置

SEEK_END2文件末尾

函数声明: int fseek(FILE *stream, long offset, int whence);

如果执行成功,stream将指向以whence为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset取值大于等于2*1024*1024*1024,即long的正数范围2G),则不改变stream指向的位置,函数返回-1,并且会设置errno,可以使用perror()输出错误原因。

例题代码:

3960cfbe7dcb8e08dd27c25179472f47.png

程序运行结果:

f491d38361523a9d74a4a803d7962df6.png

fseek的第二个参数偏移位置正数表示向后(文件结尾的方向)移动,负号表示向前(文件开头的方向)移动。

例:

fseek(stream, 100L, SEEK_CUR);//把stream指针移动到离文件当前位置100字节处。

fseek(stream, -100L,SEEK_END);//把stream指针移动到离文件结尾100字节处。

使用实例:

da91169a3d6832b64fa59ae0aa04d121.png

fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。通过ftell,可以获取当前指针距离文件开头的字节数。

1234d7ac4a9ebf6124f33a1e6cb6d5d2.png

注意事项:

fseek一般用于二进制文件的指针移动,也可以用于文本文件,但操作的stream必须是已经打开的文件。如果没有打开的文件,那么将会出现错误。

fseek不能操作进程间通信的文件,如:pipe,FIFO或者socket。如果操作这些文件将会返回-1,并且设置errno为ESPIPE。

这篇关于fseek函数的用法linux,C 库函数 - fseek()函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/213171

相关文章

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、