fgetpos, fseek, fsetpos, ftell, rewind - 重定位某个流
总览 (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)).
fgetpos 和 fsetpos 函数 相当于 ftell 和 fseek (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
- fseek 的 whence 参数 不是 SEEK_SET, SEEK_END, 或
SEEK_CUR.
fgetpos, fseek, fsetpos, 和 ftell 函数 也可能 失败后, 把
errno 设置为 fflush(3), fstat(2), lseek(2),
和 malloc(3) 的 错误 类型.
fgetpos, fseek, fsetpos, ftell, rewind - 重定位某个流的更多相关文章
- fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux
程序: #include<stdio.h> int main(int argc,char *argv[]) { FILE * stream; fpos_t pos; stream = fo ...
- Reverse Core 第二部分 - 16&17章 - 基址重定位表&.reloc节区
第16-17章 - 基址重定位表&.reloc节区 @date: 2016/11/31 @author: dlive 0x00 前言 这几天忙着挖邮箱漏洞,吃火锅,马上要被关禁闭,看书进度比较 ...
- IOAPIC重定位中断处理函数思路整理
因为小可并非硬件编程出身,汇编基础又比较差...所以刚开始理解利用IOAPIC重定位技术的时候相当困难. 何为IOAPIC? 首先,必须认识到它是一个硬件,可编程的硬件.我理解的它在整个流程中的作用如 ...
- ELF Format 笔记(十)—— 重定位(relocation)
ilocker:关注 Android 安全(新手) QQ: 2597294287 重定位就是把符号引用与符号定义链接起来的过程,这也是 android linker 的主要工作之一. 当程序中调用一个 ...
- [PE结构分析] 10.基址重定位
源代码如下: typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD Type ...
- 小甲鱼PE详解之基址重定位详解(PE详解10)
今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的系哦”.其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做,主要原因是因为P ...
- [CSAPP-II] 链接[符号解析和重定位] 静态链接 动态链接 动态链接接口
1 平台 转http://blog.csdn.net/misskissc/article/details/43063419 1.1 硬件 Table 1. 硬件(lscpu) Architecture ...
- s3c6410_uboot中的代码重定位(nand->sdram)
本文仅探讨s3c6410从nand flash启动u-boot时的代码重定位过程 参考: 1)<USER'S MANUAL-S3C6410X>第二章 MEMORY MAP 第八章 NAND ...
- ELF学习--重定位文件
add.c int data = 1;int bss;const int rodata = 1;int add(int num1, int num2){ int sum = 0; sum = num1 ...
随机推荐
- nodejs supvisor模块
在测试nodejs程序的时候,每次都需要在控制台编译,非常的麻烦.supervisor是一款无需重复手动编译,自动后台监听文件变化来自动编译,并且不需要在项目内require,使用非常的方便. 使用方 ...
- J2ee的SSM和SSH的小结
1.介绍SSM框架: SSM是指由Spring.SpringMVC.Mybatis三个开源框架整合的开发框架. a).Spring是一个轻量级的容器框架,核心是控制反转(IoC)和面向切面(AOP). ...
- Gym 100962G Green Day (找规律)
题意:你用k 个生成树构成一个完全图. 析:n 个点的完全图有n(n-1)/2个边,一个生成树有n-1个边,你有k 个生成树 即边数等于 K(n-1) ,即 n(n-1)/2 == k(n-1) ...
- DLL分配的内存如何在EXE里面释放
总结下面几个要点: 1. 保证内存分配和清除的统一性:如果一个DLL提供一个能够分配内存的函数,那么这个DLL同时应该提供一个函数释放这些内存.数据的创建和清除应该在同一个层次上. 曾经遇到过这样的例 ...
- hdoj1001【智障了。。。】
我不得不写这样一发,来提醒自己,本来是想在xixi面前1minAC,然后: 我没有用long long. wa一发 他告诉我每个案例后都要再加一个空行,没看见PE一 #include<iostr ...
- bzoj 2565: 最长双回文串【manacher+线段树】
因为我很愚蠢所以用了很愚蠢的O(nlogn)的manacher+线段树做法 就是开两个线段树mn和mx分别表示左端点在i的最长回文子串和右端点在i的最长回文子串 用manacher求出每个点的最长回文 ...
- IT兄弟连 JavaWeb教程 Servlet表单乱码问题
在使用原生的Servlet进行Web应用开发时经常会遇到一些中文乱码问题,造成乱码问题的原因只有一个:即客户端与服务端的字符编码不一致所导致的. 请求参数乱码问题 服务器端获取客户端传递过来的数据出现 ...
- 洛谷 P1589 泥泞路
题目描述 暴雨过后,FJ的农场到镇上的公路上有一些泥泞路,他有若干块长度为L的木板可以铺在这些泥泞路上,问他至少需要多少块木板,才能把所有的泥泞路覆盖住. 输入输出格式 输入格式: 第一行为正整数n( ...
- Codeforces Round #261 (Div. 2) E
Description Pashmak's homework is a problem about graphs. Although he always tries to do his homewor ...
- vue中methods中的方法闭包缓存问题
vue中methods中的方法闭包缓存问题 问题背景 需求描述 在路由的导航栏中需要, 判断是否为第一次点击 需要一个标志位来记录是否点击过 现状: 这个标志位只在一个函数中用过.不希望存放全局 希望 ...