标准文件IO详解(七)---定位流

  和文件 IO 中有 lseek 函数类似,C库函数中提供了 fseek 、ftell 和 rewind 三个函数来对流进行定位操作。======================================================

函数原型:

函数参数:

  • stream:要操作的文件流指针
  • offset:相对于参数 whence 的偏移量
  • whence:参考点

返回值:

  • 调用成功时返回 0
  • 调用失败时返回 -1

参数whence可以是以下几个值之一:

  • SEEK_SET:代表文件开头
  • SEEK_CUR:代表文件当前偏移量
  • SEEK_END:代表文件末尾

=====================================================

函数原型:获取当前文件偏移量

函数参数:

  • stream:要操作的文件流指针

返回值:

  • 调用成功时返回 当前文件偏移量(相对于文件开头)
  • 调用失败时返回 -1

利用 fseek 函数和 ftell 函数可以获取到文件长度,先将文件偏移位置设置到文件末尾,然后在利用 fseek 函数来获取到文件偏移量。

=====================================================

函数原型:将文件偏移位置设置到文件开头

函数参数:

  • stream:要操作的文件流指针

返回值:

  • 无返回值
时间: 2024-10-12 14:07:33

标准文件IO详解(七)---定位流的相关文章

标准文件IO详解(四)---打开流详解

c库中提供了 fopen 和 fdopen两个函数用于打开流,获取到文件流指针. ===================================================== 函数原型: 函数参数: path:要打开文件的路径 mode:打开的模式 返回值: 调用成功时返回 文件流指针 调用失败时返回 NULL ===================================================== mode参数可以是以下参数中的一个: r:只读模式:要求文件必须

标准文件IO详解(二)---标准输入流、标准输出流和标准错误流

在文件 IO 中使用文件描述符fd来表示一个文件不同,而标准 IO 使用一个指向 FILE 对象的指针来代表一个文件.FILE 对象实际上是一个结构体,此结构体中封装了代表文件的文件描述符.当然不仅仅是含有文件描述符,其中还会记录属于该文件的用户缓冲区信息. 在文件 IO 详解笔记中提到过标准输入.标准输出和标准错误,分别对应文件描述符的0.1.2,也可以使用STDIN_FILENO.STDOUT_FILENO和STDERR_FILENO三个宏来代替.这三个文件描述符是创建进程时默认会打开的.

标准文件IO详解(三)---缓冲区详解

标准文件 IO 相比于文件 IO 来说,在用户层中增加了一个用户缓冲区.也就是说在使用标准IO 来操作文件的时候,都会经过此用户层的缓冲区.比如使用标准 IO 来向文件中写入内容的时候,首先内容会首先被写入到用户缓冲区中,等到 缓冲区满 或者 刷新缓冲区 的时候在调用文件 IO 将内容写入到内核中的磁盘缓冲区中. ==================================================== 用户缓冲区的类型: 全缓冲 此种类型的缓冲只有在缓冲区满的时候才会调用实际的文

标准文件IO详解(九)---fileno函数详解

在前面笔记“打开流详解”中提到了 fdopen 函数,可以通过文件描述符 fd 来获取对应的文件流指针.而同时 C 库函数提供了 fileno 函数,这个函数的作用就是能够通过 文件流指针来获取对应的 文件描述符 fd . ======================================================= 函数原型: 函数参数: stream:要操作的文件流指针 返回值: 函数返回与文件流指针对应的文件描述符,此函数不会出错(和umask函数类似) =========

标准文件IO详解(一)---文件IO操作和标准文件IO操作的区别

POSIX IO操作称为文件IO,也称为低级文件IO,是操作系统提供的系统调用,属于没有缓冲区的文件操作方式.执行该种操作后,内容会直接被写入到内核中的提供给磁盘的专门缓冲区中,内核会定期的刷新该缓冲区,将内容同步到磁盘当中. ANSI  C IO操作称为标准文件IO,也称为高级文件IO,是C库函数提供的,属于带有缓冲区的文件操作方式.执行该种操作后,内容首先会将内容写入到用户空间的缓冲区中,待缓冲区满或者需要刷新的时候再去调用文件IO,将内容写入到内核的磁盘缓冲区当中. 相比于低级文件IO,高

文件IO详解(七)---lseek函数详解

lseek函数用来设置当前文件偏移量. ====================================================== 函数原型: 函数参数: fd:要操作的文件描述符 offset:基于whence参数的偏移量 whence:参考点位置 返回值: 调用成功时返回当前相对于文件开头的偏移量,以字节为单位 调用失败时返回 -1,并修改errno的值 ======================================================= when

标准文件IO详解(五)---读和写流

C库函数中提供了三种不同类型的读写函数,这三种不同类型的读写方式如下: 一个字符一个字符的进行读写 以换行符为界一行一行的进行读写 一块一块的进行读写 ====================================================== 以字符为单位的读写函数: fgetc函数 和 fputc 函数 函数原型: 函数参数: stream:要操作的文件流指针 返回值: 调用成功时返回读取到的字符 调用失败时返回 EOF(-1) 读取到文件末尾时返回 EOF(-1) 注意:当

标准文件IO详解(六)---fclose函数详解

fclose函数和close函数类似,用于关闭文件流指针.fclose函数被调用后,属于该文件流指针的用户缓冲区将会被强制刷新,并且对应的文件描述符 fd 也将会被关闭. ====================================================== 函数原型: 函数参数: fp:要关闭的文件流指针 返回值: 调用成功时返回 0 调用失败时返回 EOF

标准文件IO详解(八)---格式化 IO

这里只介绍几种常用的格式化 IO 函数,这些函数如下所示: fprintf:将内容按照指定格式写入到文件当中 sprintf:将内容按照指定格式写入到内存当中 snprintf:相比于 sprintf 函数来说,就是增加了 字符数 的限制 vfprintf:相比于 fprintf 函数而言,只是将变参 ... 变为一个具体的参数arg vsprintf:同上 vsnprintf:同上 =======================================================