fmemopen 0.0.1

fmemopen 0.0.1

测试已测试
语言语言 CC
许可证 Apache 2
发布最后发布2014年12月

未认领维护。



fmemopen 0.0.1

  • Jeff Verkoeyen

fmemopen 针对 Mac OS 和 iOS

最初从 ingenuitas python-tesseract 转移过来。由 Jeff Verkoeyen 基于 Apache 2.0 许可证进行移植。

来自 fmemopen 手册页

FILE *fmemopen(void *buf, size_t size, const char *mode);

fmemopen() 函数打开一个流,允许通过模式指定的访问。该流允许在由 buf 指向的字符串或内存缓冲区上执行 I/O 操作。此缓冲区必须至少 size 字节长。

遗憾的是,这种方法在 BSD 操作系统(具体为 Mac OS X 和 iOS)上不存在。可以使用特定的 BSD 方法 funopen 重新创建此功能。

来自 funopen 手册页

FILE * funopen(const void cookie, int (readfn)(void , char *, int), int (writefn)(void , const char *, int), fpos_t (seekfn)(void , fpos_t, int), int (closefn)(void *));

funopen() 函数将一个流与多达四个“I/O 函数”关联起来。必须指定 readfn 或 writefn;其他可以用空指针传递适当类型的值。这些 I/O 函数将用于读取、写入、定位和关闭新的流。

fmemopen.c 提供了使用 funopen 的简单 fmemopen 实现,以便您可以为内存块创建 FILE 指针。

将其添加到您的项目中

将 fmemopen.h 和 fmemopen.c 拖入您的项目中,并将它们添加到目标中。《#include "fmemopen.h HX, 在您需要使用《fmemopen》的地方。

示例

#import "fmemopen.h"

NSString* string = @"fmemopen in Objective-C";
const char* cstr = [string UTF8String];
FILE* file = fmemopen((void *)cstr, sizeof(char) * (string.length + 1), "r");

// fread on file will now read the contents of the NSString

fclose(file);