zoukankan      html  css  js  c++  java
  • APUE学习笔记——5.9Binary I/O 二进制读写

    概述:
            二进制I/O,通常用来一次性读写结构化的数据块。(因为有时候我们要读写的数据中包含换行符或者Null字符,无法使用fgets或fputs,而使用getc和putc又需要花费太多的实效,效率太低,因此需要二进制I/O)
    函数原型:
        
    1. #include <stdio.h>
    2. size_t fread(void *restrict ptr,size_t size,size_t nobj,FILE *restrict fp);
    3. size_t fwrite(const void *restrict ptr,size_t size,size_t nobj,FILE *restrict fp);
    4. Both return: number of objects read or written
     参数:
      (1)ptr:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
      (2)size:要读写的字节数;
      (3)nobj:要进行读写多少个size字节的数据项;
      (4)fp:文件型指针。
    Example
    1. float data[10];
    2. if (fwrite(&data[2], sizeof(float), 4, fp) != 4)
    3. err_sys("fwrite error");
    将data[2]到data[5]的数据写入fp的文件

    1. struct {
    2. short count;
    3. long total;
    4. char name[NAMESIZE];
    5. }item;
    6. if (fwrite(&item, sizeof(item), 1, fp) != 1)
    7. err_sys("fwrite error");
    8. Here, we specifysizeas the size of structur
    将一个item对象的数据写入fp
  • 相关阅读:
    Python基础
    熟悉常见的Linux操作
    大数据概述
    实验报告(3)-语法分析
    LL(1)文法
    简化版C语言文法
    实验报告(1)-词法分析
    中文词频统计
    综合练习:英文词频统计
    字符串练习
  • 原文地址:https://www.cnblogs.com/Windeal/p/4284658.html
Copyright © 2011-2022 走看看