学习笔记(linux高级编程)3

fputs

int fputs(const char *s, FILE *stream);

功能:

       从s所在的本地内存中获取一行数据,

       并写入stream对应的文件流对象。

参数: s 要写的信息,一般是固定的字符串或者有数据的数组。

       stream 要写入的目标文件流对象

返回值:成功 nonnegative number on success

       失败 -1;

Fputs和fgets不能操作二进制文件(./a.out,图片等(有大量/0);)(原因:fputs遇到/0就结束,会导致数据大量丢失)

二进制文件读写:  fread()/fwrite()

fread

size_t  fread(void  *ptr,  size_t size, size_t nmemb, FILE *stream);

功能:从指定的stream流对象中获取nmemeb个大小为size字节的数据块到ptr

      所在的本地内存中。

参数:ptr 要存储数据的本地内存一般是数组或者结构体指针

      size 单个数据块的元数据大小。最小单元的大小

      nmemb 要获取的数据块的个数,拷贝的数据块个数。

      stream 要获取数据的源文件流对象,如果是stdin表示从

      键盘获取数据,如果是fp文件则表示从普通文件获取。

返回值:

        成功 小于等于nemeb的整数,表示获取的数据长度

       失败 小于0,结尾 0;

fwrite

size_t fwrite(const void  *ptr,  size_t  size,size_t nmemb, FILE *stream);

功能:从ptr所在本地内存中取出nmemb个大小为size的数据块写入到stream流对应

     的文件流对象中。

参数:ptr 要写的数据块地址,一般是数组或者结构体指针

      size  要写的数据块元数据大小,单位是字节

      nmemb 要写的数据块的个数

      stream 要写的目标文件流对象。如果是stdout则表示数据会

      写到终端屏幕显示,如果是fp的普通文件则会写入到文件中。

返回值:成功 小于等于nmemb 的个数。

       失败 <0

标准IO之文件定位:

fseek()   ftell()  rewind()

rewind //回到文件头

fseek

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

功能:将stream流文件中的文件指针从whence位置开始

      偏移offset字节的长度。

参数:stream  要移动文件指针的目标文件流对象。

      注意:不支持设备文件,一般用于普通文件。

      offset  要在文件内偏移的距离,单位字节。

               如果值为整数,则向文件末尾偏移

               如果值为负数,则向文件开头偏移

      whence  偏移的起始位置,由系统定义的三个宏开始。

        SEEK_SET  文件的开头位置

         SEEK_CUR  文件的当前位置

         SEEK_END  文件的末尾位置

返回值:

    成功: 返回 0

    失败:  -1;

如果从文件的指定位置向后偏移过程中已经超过了文件的当前末尾位置,则会自动以'\0'来填充文件内容,从而形成一种被称为"空洞文件" 的特殊文件。

空洞文件:抢占磁盘空间

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值