可能重复:
如何获取内存中缓冲区的文件描述符?
我试图强制使用FILE
类的库使用内存中的缓冲区而不是文件。fmemopen
但是,我尝试了该库使用fileno
它返回 -1 并导致库崩溃。所以我读到我需要一个文件描述符,我可以使用管道命令来制作一个。我不完全明白我做了什么,但我让它工作了。但是,我不知道我所做的是否真的安全。所以这里是代码:
int fstr[2];
pipe(fstr);
write(fstr[1], src, strlen(src));
close(fstr[1]);
FILE* file = fdopen( fstr[0], "r" );
那么这安全吗?