一、函数原型

  1、FILE *fopen(const char *path, const char *mode);

    path:要打开文件路径及文件名;

    mode:  r 打开只读文件,该文件必须存在。

        r+ 打开可读写的文件,该文件必须存在。

        rb+ 读写打开一个二进制文件,只允许读写数据。

        rt+ 读写打开一个文本文件,允许读和写。

        w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

        w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

        a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

        a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

        wb 只写打开或新建一个二进制文件;只允许写数据。

        wb+ 读写打开或建立一个二进制文件,允许读和写。

        wt+ 读写打开或着建立一个文本文件;允许读写。

        at+ 读写打开一个文本文件,允许读或在文本末追加数据。

        ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

  2、int fclose(FILE *fp);

    *fp: 为使用fopen打开文件的返回指针;

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

    *ptr:指向文件内容读取到buffer中的地址

    size:每次读取的文件大小

    nmemb:读取的次数

    stream:fopen打开文件的指针

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

     *ptr:与fread指向同一个地址

    size:每次读取的文件大小

    nmemb:读取的次数

    stream: 写入文件fopen返回的指针

将yuv数据分解成单张图片

  

#include <stdio.h>
#include <stdlib.h> int num=;
char fileName[]={};
void getFileName()
{
sprintf(fileName,"%s%d%s","./image_move/",num,".yuv");
num += ;
} int main()
{
FILE *fp_src,*fp_dst;
long frameSize= ;
char srcBuf[]={};
fp_dst=fopen("./final.yuv","ab");
if(fp_dst == NULL)
{
printf("open dst file failed\n");
exit();
}
while(){
if(num > )
break;
getFileName();
fp_src=fopen(fileName,"r");
if(fp_src == NULL)
{
fclose(fp_dst);
printf("open src file failed\n");
exit();
}
fread(srcBuf,sizeof(char),frameSize,fp_src);
fwrite(srcBuf,sizeof(char),frameSize,fp_dst);
fclose(fp_src);
}
fclose(fp_dst);
return ;
}
原始文件下载地址:https://i.cnblogs.com/Files.aspx
         linux环境使用tar xvf image_move.tar.gz解压

也可以使用shell 脚本进行文件拼接

#! /bin/sh
FILENAME= catFile(){
while [ -eq ]
do
if [ "$FILENAME" -le ]; then
echo "$FILENAME"
FILENAME=`expr $FILENAME + `
cat "$FILENAME".yuv >> .yuv
else
break
fi
done
}
catFile

标准I/O读写文件的更多相关文章

  1. Go标准库之读写文件(File)

    Go标准库之读写文件(File) 创建一个空文件 package main import ( "log" "os" ) func main() { file, ...

  2. 你好,C++(5)如何输出数据到屏幕、从屏幕输入数据与读写文件?

    2.2  基本输入/输出流 听过HelloWorld.exe的自我介绍之后,大家已经知道了一个C++程序的任务就是描述数据和处理数据.这两大任务的对象都是数据,可现在的问题是,数据不可能无中生有地产生 ...

  3. 【转】 Linux内核中读写文件数据的方法--不错

    原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法  有时候需要在Linuxkernel--大 ...

  4. Android 读写文件

    Android 读写文件 Android使用一个非常类似与其他平台上的基于磁盘的文件系统. 这节课讲述如何利用File APIs在Android文件系统中读写文件. File 对象非常适合于流式顺序数 ...

  5. java.io几种读写文件的方式

    一.Java把这些不同来源和目标的数据都统一抽象为数据流. Java语言的输入输出功能是十分强大而灵活的. 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作 ...

  6. Java IO如何读写文件

    Java把这些不同来源和目标的数据都统一抽象为数据流:Java语言的输入输出功能是十分强大而灵活的:在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上 ...

  7. LINUX读写文件

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  8. VC++读写文件

    目录 第1章读写文件    1 1.1 API    1 1.2 低级IO    1 1.2.1 文件序号    1 1.2.2 文本文件与二进制文件    1 1.3 流IO    2 1.4 Un ...

  9. java几种读写文件的方式

    java.io的几种读写文件的方式 一.java把这些不同来源和目标的数据都统一抽象为数据流. Java语言的输入输出功能是十分强大而灵活的. 在Java类库中,IO部分的内容是很庞大的,因为它涉及的 ...

随机推荐

  1. python BeautifulSoup 介绍--安装

    Python中,专门用于HTML/XML解析的库: 特点是: 即使是有bug,有问题的html代码,也可以解析. BeautifulSoup主要有两个版本 BeautifulSoup 3 之前的,比较 ...

  2. MongoDB 教程(二):MongoDB 简介

    概述: MongoDB 旨在为WEB应用提供可扩展.高性能的数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成. MongoDB 文档类似于 ...

  3. python使用SQLAlchemy模块连接MySQL

    ORM技术:Object-Relational Mapping,负责把关系数据库的表结构映射到对象上. 1.安装SQLAlchemy,MySQLdb模块 MySQLdb安装教程:http://www. ...

  4. Day2----Jmeter 压测

    一.jmeter 压测1.一般压测时间为10-15分钟就行,设置时间在调度器配置--持续时间中设置,例如:想压10分钟,则持续时间输入:600 1.线程数:发送请求的用户数,即并发数 2.Ram-up ...

  5. [CodeForces - 614C] C - Peter and Snow Blower

    C - Peter and Snow Blower Peter got a new snow blower as a New Year present. Of course, Peter decide ...

  6. Hadoop---18/06/03 20:15:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable starting yarn daemons

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin- ...

  7. 【转】Code First 属性详解

    下面解释每个配置的作用 Table :用于指定生成表的表名.架构信息. Column :用于指定生成数据表的列信息,如列名.数据类型.顺序等. Key :用于指定任何名称的属性作为主键列并且默认将此列 ...

  8. Test22455

  9. js之close()方法

    .close()方法只适用于通过window.open()打开的弹出窗口.对于浏览器的主窗口,如果没有得到用户允许是不能关闭的.不过,弹出窗口可以调用top.close()在不经用户允许的情况下关闭自 ...

  10. mysql sql_mode=only_full_group_by问题?

    视图查询的时候本地数据库报错: 解决办法: 1.查看sql_mode select @@global.sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_Z ...