unix环境编程 第五章 5.14 内存流

内存流(字节数组流)——主要用于将数据写入内存或者从内存中读取数据

一共有三个函数用于创建内存流:

#include <stdio.h>
FILE* fmemopen(void *restrict buf,size_t size,const char *restrict type);
//buf参数指向缓冲区的开始位置,size指定了缓冲区的大小,type表明如何控制流

type的可能取值如下:

type说明
r或rb为读而打开
w或wb为写而打开
a或ab追加;为在第一个null字节处写而打开
r+或r+b或rb+为读和写打开
w+或w+b或wb+把文件截断至0长,为读和写打开
a+或a+b或ab+追加;为在第一个null字节出读和写而打开

关于书上的代码,内容较复杂,请见:UNIX编程之冲洗内存流与null追加策略(跪谢作者)

另外两个函数为:

#include <stdio.h>
FILE* open_memstream(char** bufp,size_t *sizep);

#include<wchar.h>
FILE* open_wmemstream(wchar_t ***bufp,size_t *sizep);
  • 创建的流只能写打开
  • 不能指定自己的缓冲区,但是可以分别通过bufp和sizep参数访问缓冲区地址的大小
  • 关闭流后需要自行释放缓冲区
  • 对流添加字节会增加缓冲区的大小 

以上内容来源于网络,仅作本人学习笔记使用,关于本书请参APUE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值