总览 (SYNOPSIS)

#include <stdio.h>

int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);

void rewind(FILE *stream);
int fgetpos(FILE
*
stream, fpos_t *pos);
int fsetpos(FILE
*
stream, fpos_t *pos);

描述 (DESCRIPTION)

函数 fseek 设置 stream 流 的 文件位置 标志. 新的 文件位置
(以 字节 为 单位) 根据 whence 指定的 文件位置 加上 offset 获得. 如果 whence 设置为
SEEK_SET, SEEK_CUR, 或 SEEK_END, 则 对应的 文件位置 分别是 文件开始, 当前位置,
或 文件末尾. 成功 调用 fseek 后, 函数 清除 流 的 文件末尾 标志(end-of-file), 同时 消除
ungetc(3) 函数 对 流 的 影响.

ftell 函数 能够 获取 stream 流 的 当前 文件位置.

rewind 函数 把 stream 流 的 文件位置 设置到 文件开始处. 它 等效于:

(void)fseek(stream, 0L, SEEK_SET)

另外 它 还能 清除 流 的 错误标志 (见 clearerr(3)).

fgetposfsetpos 函数 相当于 ftellfseek (whence 设置
SEEK_SET) 的 另一种 写法, 读取 当前 文件位置 并 保存在 pos 中, 或用 pos 指向的值
设置 当前 文件位置. 在 某些 非UNIX系统 中, fpos_t 可以 是 一种 复杂的 (数据)对象, 因而 这两个函数 大概是 唯一
可移植的 流定位函数.

返回值 (RETURN VALUE)

rewind 函数 没有 返回值. 如果 操作 成功, fgetpos,
fseek, fsetpos 返回 0, 而 ftell 返回 当前 偏移 (当前 文件位置), 否则 返回 -1,
并 设置 全局变量 errno, 指出 错误 类型.

错误 (ERRORS)

EBADF
stream 流 不是 可重定位的 流 (non-seekable stream).
EINVAL
fseekwhence 参数 不是 SEEK_SET, SEEK_END, 或
SEEK_CUR.

fgetpos, fseek, fsetpos, 和 ftell 函数 也可能 失败后, 把
errno 设置为 fflush(3), fstat(2), lseek(2),
malloc(3) 的 错误 类型.

fgetpos, fseek, fsetpos, ftell, rewind - 重定位某个流的更多相关文章

  1. fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux

    程序: #include<stdio.h> int main(int argc,char *argv[]) { FILE * stream; fpos_t pos; stream = fo ...

  2. Reverse Core 第二部分 - 16&17章 - 基址重定位表&.reloc节区

    第16-17章 - 基址重定位表&.reloc节区 @date: 2016/11/31 @author: dlive 0x00 前言 这几天忙着挖邮箱漏洞,吃火锅,马上要被关禁闭,看书进度比较 ...

  3. IOAPIC重定位中断处理函数思路整理

    因为小可并非硬件编程出身,汇编基础又比较差...所以刚开始理解利用IOAPIC重定位技术的时候相当困难. 何为IOAPIC? 首先,必须认识到它是一个硬件,可编程的硬件.我理解的它在整个流程中的作用如 ...

  4. ELF Format 笔记(十)—— 重定位(relocation)

    ilocker:关注 Android 安全(新手) QQ: 2597294287 重定位就是把符号引用与符号定义链接起来的过程,这也是 android linker 的主要工作之一. 当程序中调用一个 ...

  5. [PE结构分析] 10.基址重定位

    源代码如下: typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD Type ...

  6. 小甲鱼PE详解之基址重定位详解(PE详解10)

    今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的系哦”.其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做,主要原因是因为P ...

  7. [CSAPP-II] 链接[符号解析和重定位] 静态链接 动态链接 动态链接接口

    1 平台 转http://blog.csdn.net/misskissc/article/details/43063419 1.1 硬件 Table 1. 硬件(lscpu) Architecture ...

  8. s3c6410_uboot中的代码重定位(nand->sdram)

    本文仅探讨s3c6410从nand flash启动u-boot时的代码重定位过程 参考: 1)<USER'S MANUAL-S3C6410X>第二章 MEMORY MAP 第八章 NAND ...

  9. ELF学习--重定位文件

    add.c int data = 1;int bss;const int rodata = 1;int add(int num1, int num2){ int sum = 0; sum = num1 ...

随机推荐

  1. MongoDB 用户名密码登录

    Mongodb enable authentication MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mon ...

  2. unity aSSETBUNDEL (转)

    无论是模型资源还是UI资源,最好是先把他们放在Prefab中,然后在做成Assetbundle.我们以模型来举例,Assetbundle中可以放一个模型.也可以放多个模型,它是非常灵活了那么最需要考虑 ...

  3. bzoj1222

    奇怪的dp 思路清奇 dp[i][j]表示当前做完了i个任务,1机器花了j秒,2机器花费的最少时间,然后转移就行了. #include<bits/stdc++.h> using names ...

  4. 树莓派Dietpi系统配置Dueros

    dietpi 系统安装alsa工具 安装依赖  sudo apt-get install python-dateutil  sudo apt-get install gir1.2-gstreamer- ...

  5. Coursera Algorithms Programming Assignment 3: Pattern Recognition (100分)

    题目原文详见http://coursera.cs.princeton.edu/algs4/assignments/collinear.html 程序的主要目的是寻找n个points中的line seg ...

  6. 数据库MySQL技术-基础知识

    数据库技术: SQL,关系数据库标准 注意: 环境编码:  cmd客户端是固定的gbk编码  而php网页中,是该网页文件的编码(现在主流都是utf8). mysql> set names gb ...

  7. iOS View

    创建: 2018/04/19 完成: 2018/04/20 View的创建  创建  storyboard上操作  与代码连接 ● 目的: 通过代码控制view ● 按住option拖动 View的坐 ...

  8. Swift3的闭包相关

    几乎所有编程语言里都有简化的函数写法,c语言里是宏函数(#define),c++里是内联函数(inline,顺带一说,inline是内联的意思,在html里display里指定的inline也是内联的 ...

  9. (水题)洛谷 - P1093 - 奖学金

    https://www.luogu.org/problemnew/show/P1093 #include<bits/stdc++.h> using namespace std; #defi ...

  10. poj2239 poj1274【二分匹配】

    题意: 就是尽可能的选多的课 思路: 把课程和上课的时间看作二分图 跑一跑二分匹配就好了 #include<iostream> #include<cstdio> #includ ...