我有一个从文件中读取数据的函数(即它传递一个file *)。
我想要完成的是使用该函数从string中读取数据,即我想将string中的数据视为物理文件中的数据(例如使用fgets,fseek等),所以在效果,一个内存文件。
我试图通过setvbuf将数据string与一个/ dev / null(Nul)文件关联起来(类似于我在这个stackoverflow问题中读到的),但是我做错了,或者不是这样做。
有人可以帮助我在C中实现这一点,最好是以便携的方式(实际上,我不介意使用OS特定的function/ ifdefs只要它工作,它不是/太/复杂)。
为什么malloc / new捕获callstack?
如何使用LowLevelKeyboardHook挂钩Win + Tab
如果InitialDirectory被设置,OpenfileDialog是否可以自动select具有在filename中设置的值的文件?
使用特定版本的Python创buildwindows Python virtualenv
JsON问题与执行
编辑:
#include <stdio.h> #include <string.h> #define NulL_L "/dev/null" #define NulL_W "Nul" file* open_memfile(char *pc_file_as_string) { file *f = fopen(NulL_L,"rb"); int i_size = strlen(pc_file_as_string); setvbuf(f,pc_file_as_string,_IolBF,i_size); return f; } int main() { char c_line[100] = ""; char pc_file_as_string[] = "line1 asdfnline2 fsa afdsnnline4"; file *f = open_memfile(pc_file_as_string); int i = 4; while (i > 0) { fgets(c_line,100,f); if (c_line == NulL) break; else puts(c_line); i--; } fclose(f); return 0; }
log4j2输出不写入日志文件
有没有办法在windows中find用户设置的系统区域设置?
我怎样才能设置一个true / falsevariables?
windows的PHP 5.5中缺lessPHP_zip.dll
C ++堆栈跟踪问题
在linux上,你会使用fmemopen 。
在windows上没有可用的fmemopen功能。
您可以使用CreatefileMapPing / MapVIEwOffile函数创建并映射内存(分页)文件,但这将返回一个windows文件句柄,这对您而言是无法使用的。
使用cstdio中提供的sscanf和其他字符串处理函数。
总结以上是内存溢出为你收集整理的如何使用文件函数从内存中的string读取数据全部内容,希望文章能够帮你解决如何使用文件函数从内存中的string读取数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)