NAME
fmemopen, open_memstream, open_wmemstream - open memory as stream
SYNOPSIS
#include <stdio.h>
FILE *fmemopen(void *buf, size_t size, const char *mode);
FILE *open_memstream(char **ptr, size_t *sizeloc);
#include <wchar.h>
FILE *open_wmemstream(wchar_t **ptr, size_t *sizeloc);
fmemopen(), open_memstream(), open_wmemstream():
Since glibc 2.10:
_XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
Before glibc 2.10:
_GNU_SOURCE
RETURN VALUE Upon successful completion fmemopen(), open_memstream() and open_wmemstream()
return a FILE pointer. Otherwise, NULL is returned and errno is set to
indicate the error.
VERSIONS
fmemopen() and open_memstream() were already available in glibc 1.0.x.
open_wmemstream() is available since glibc 2.4.
Program source
#define _GNU_SOURCE
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define handle_error(msg) /
do { perror(msg); exit(EXIT_FAILURE); } while (0)
int
main(int argc, char *argv[])
{
FILE *out, *in;
int v, s;
size_t size;
char *ptr;
if (argc != 2) {
fprintf(stderr, "Usage: %s <file>/n", argv[0]);
exit(EXIT_FAILURE);
}
in = fmemopen(argv[1], strlen(argv[1]), "r");
if (in == NULL)
handle_error("fmemopen");
out = open_memstream(&ptr, &size);
if (out == NULL)
handle_error("open_memstream");
for (;;) {
s = fscanf(in, "%d", &v);
if (s <= 0)
break;
s = fprintf(out, "%d ", v * v);
if (s == -1)
handle_error("fprintf");
}
fclose(in);
fclose(out);
printf("size=%ld; ptr=%s/n", (long) size, ptr);
free(ptr);
exit(EXIT_SUCCESS);
}
Ref: http://www.kernel.org/doc/man-pages/online/pages/man3/fmemopen.3.html
Home: http://www.kernel.org/doc/man-pages/index.html
分享到:
相关推荐
MMTools控件的demo例子,包含从TMemoryStream内存流,资源中加载mp3。具体例子在\mpeg\memstream中
memStream . pipe ( process . stdout ) ; // {"heapUsed":2719192,"heapTotal":7195904,"heapPercent":0.3778805275890284,"freeMem":9306.43968} // {"heapUsed":3080016,"heapTotal":7195904,"heapPercent":0....
oImg.Save(MemStream, GetImageType(strContentType)); MemStream.WriteTo(Response.OutputStream); } } } </FONT></FONT></FONT><FONT color=#ff0000 size=4></FONT><FONT size=4>功能: 1。把图片文件(JPG ...
libmemstream libmemstream是OS X的动态内存缓冲区流功能(即 , 和 )的实现。 源代码是基于在的 。 建造 要构建该库,只需从项目的根目录运行./build即可。 这将在output子目录中...API的手册页是memstream(3) 。
本程序,实现一个简单的语音聊天功能,将麦克风采集到的音频数据经G711压缩后,通过UDP协议传输。在本文中 不讨论如何通过麦克风采集音频数据,也不讨论G711压缩的细节,相关内容可以查看文章后参考文献的内容。...
原始模块在这里 git://github.com/ollym/memstream.git 被重新制作和改进。 安装 如果你安装了 npm,你可以简单地输入: npm install memorystream 或者您可以使用 git 命令克隆此存储库: git clone git://...