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

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

例子 : 读写文件(二进制操作)

#include <stdio.h>

int main(int argc, const char *argv[])
{
FILE *fp = NULL;
fp = fopen(argv[],"w");
if(fp == NULL)
{
perror("fail open :");
return -;
}
int a[] = {,,,}; //二进制流 fwrite(a,sizeof(int),sizeof(a)/sizeof(int),fp);//写二进制流
fclose(fp); //写完,关闭,再以只读方式打开 fp = fopen(argv[],"r"); //以只读方式打开
if(fp == NULL)
{
perror("fail open :");
return -;
}
int b[] = {};
fread(b,sizeof(int),,fp); int i=;
for(i=;i<;i++)
{
printf("%d ",b[i]);
}
fclose(fp);
return ;
}

例子: 实现文件内容复制

#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *fp_w = NULL;
FILE *fp_r = NULL; fp_r = fopen(argv[],"r"); //读
if(fp_r==NULL)
{
perror("r fail :");
return -;
} fp_w = fopen(argv[],"w");//写
if(fp_w==NULL)
{
perror("w fail :");
return -;
} char a[] = {};
while()
{
//fread返回值,成功返回读取的个数,失败,返回EOF(-1),读取0个已经读到文件结束了
if(fread(a,sizeof(char),sizeof(a)/sizeof(char),fp_r) == )
{
perror("fread fail : ");
break;
}
fwrite(a,sizeof(char),sizeof(a)/sizeof(char),fp_w); //写数据到文件
}
puts("cp done");
fclose(fp_w); //关闭文件
fclose(fp_r); return ;
}

标准 IO fread 与 fwrite 的使用(可以实现二进制流的读写)的更多相关文章

  1. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  2. C编程中fread 、fwrite 用法总结

    在C语言中进行文件操作时,我们经常用到fread()和fwrite(),用它们来对文件进行读写操作.下面详细绍一下这两个函数的用法.   我们在用C语言编写程序时,一般使用标准文件系统,即缓冲文件系统 ...

  3. [APUE]标准IO库(下)

    一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...

  4. [APUE]标准IO库(上)

    一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...

  5. 标准io与文件io

    A: 代码重复: 语句块1: while(判断) { 语句块2: 语句块1: } 上面可以改写为: while(1) { 语句块1: if(判断) break: 语句块2: } B: 标准IO和文件I ...

  6. 【linux草鞋应用编程系列】_1_ 开篇_系统调用IO接口与标准IO接口

    最近学习linux系统下的应用编程,参考书籍是那本称为神书的<Unix环境高级编程>,个人感觉神书不是写给草鞋看的,而是 写给大神看的,如果没有一定的基础那么看这本书可能会感到有些头重脚轻 ...

  7. linux标准io的copy

    ---恢复内容开始--- 1.linux标准io的copy #include<stdio.h> int main(int argc,char **argv) { if(argc<3) ...

  8. (九)errno和perror、标准IO

    3.1.6.文件读写的一些细节3.1.6.1.errno和perror(1)errno就是error number,意思就是错误号码.linux系统中对各种常见错误做了个编号,当函数执行错误时,函数会 ...

  9. 标准IO的简单应用,动静态库,读取系统时间并打印,模拟ls -l功能

    2015.2.27星期五,小雨 标准IO实现的复制功能: #include <stdio.h>#include <errno.h> #define N 64 int main( ...

随机推荐

  1. mac 密码重置

    首先请开机或重新启动系统,在电脑刚启动时,请按下键盘上的 command+S 组合键不动, 接下来会在屏幕上看到一串串的命令字符显示,当进入安全模式以后,会看到 一个 root 开始的命令行输入端口. ...

  2. quick'n'dirty poc for CVE-2013-1763 SOCK_DIAG bug in kernel 3.3-3.8

    /* * quick'n'dirty poc for CVE-2013-1763 SOCK_DIAG bug in kernel 3.3-3.8 * bug found by Spender * po ...

  3. bzoj [POI2015]Myjnie

    [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special Judge Description 有n家洗车店从左往右排成一排, ...

  4. ReentrantReadWriteLock的相关使用

    ReentrantLock具有完全互斥排他的效果,同一时间只有一个线程执行ReentrantLock.lock()方法后面的任务,这样虽然能够保证线程安全性,但是效率是比较低的 ReentrantRe ...

  5. vue 动态绑定height以及v-if、v-else的使用

    动态绑定height: :style="{height: slideHeight+'rem'}" slideHeight: 2 如果需要计算来得到高度,如: <p :styl ...

  6. 代理-jdk动态代理

    1.基于接口的实现,要jdk动态代理的类必须要实现一个接口: 2.中介类:实现了InvocationHandler,并重写这个接口的 方法(public Object invoke(Object pr ...

  7. kernel: possible SYN flooding on port 80. Sending cookies

    1. sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookiessysctl -w net.ipv4.tcp_synack_retries=1 #降低syn ...

  8. web自动化框架抽取示例【Java+selenium】

    web自动化测试框架抽取示例 例子:测试登录模块,对登录的账号和密码进行不同的case校验. 1.1.1 无优化代码login_1 package com.lee.auto.testFrome; im ...

  9. jQuery的属性、遍历和HTML操作

    一.属性操作   1..attr()与.removeAttr() 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息.如:在img元素中,src就是元素的特性,用来标记图 ...

  10. 阿里云智能推荐AIRec产品介绍

    一.智能推荐(AIRec)简介 AIRec背景介绍 智能推荐(简称AIRec)基于阿里巴巴集团领先的大数据和人工智能技术,结合阿里巴巴在电商.内容.新闻.视频直播和社交等多个行业领域的积累,为全球企业 ...