我正在尝试使用读取功能从文本文件读取并将其存储到缓冲区。然后,我必须再次检查该文件以查看是否进行了任何更改,并且是否有更改以重新分配内存并将内容逐个字符地存储到同一缓冲区(追加),直到达到EOF。到目前为止,我的代码如下:

int fileSize=0;
fileSize=fileStat.st_size; /*fileSize is how many bytes the file is, when read initially*/

char buf[fileSize];
read(0, buf, fileSize);

/*now, I have to check if the file changed*/
int reader;
void *tempChar;
int reader=read(0, tempChar, 1);
while(reader!=0){
   /*this means the file grew...I'm having trouble from here*/


我尝试了很多事情,但是当我尝试将内容从“ tempChar”追加到“ buf”时,总是会遇到问题。我知道要使用realloc函数。但是我仍然遇到问题。任何帮助,将不胜感激。

谢谢!

最佳答案

您不能将realloc()用于静态分配的内存。
如果要这样做,则必须使用指针并动态分配内存。
例:

char *buf;
buf = malloc(fileSize);

关于c - 读取功能:复制缓冲区,重新分配内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8030973/

10-10 22:16