我试图将内存信息读入c中的字符串,但遇到了一些问题。这是我现在拥有的。
FILE * fpipe;
long length;
char * command = "free";
fpipe = (FILE*) popen(command, "r")));
fseek(fpipe, 0, SEEK_END);
length = ftell(fpipe);
fseek(fpipe, 0, SEEK_SET);
bufer = (char*) malloc(length);
char line[128];
if(fpipe)
{
while(fgets(line, sizeof line, fpipe))
{
strcat(buffer, line);
}
}
我可以打印行,但不能将其添加到缓冲区。提前谢谢你的帮助。
最佳答案
对我之前的注释做了一点修改,现在我们可以看到代码的问题:如果有管道,只能向前搜索,不能向后搜索。一旦你走到了尽头,你就再也回不去了,所有的数据都丢失了。
相反,您需要在每次迭代中动态分配和reallocate缓冲区。
关于c - 将文件复制到C中的字符串中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36513700/