繁体   English   中英

如何使用 C 中的系统调用读取文件的每一行并将其存储在内存中

[英]How to read and store in memory each line of file using syscalls in C

我试图从文件中读取每一行,并将这些值存储在指针数组中。 我是 C 的新手,很抱歉我的代码很乱。

我尝试逐个读取一个字符,将它们放入一个字符串中,然后将该字符串“存储”在指针数组中,因为它看起来像是一个简单的解决方案,但我在内存分配方面遇到了麻烦。

这是我的代码:

char *files[100];
char buffer;

int r, i, j;
char temp[100];

int fd=open(argv[1], O_RDONLY);

i=j=0;
 while(read (fd, &buffer, 1) > 0) {
        
        if(buffer != '\n') {
            temp[i] = buffer;
        }
        else{
           
            files[j]=temp;
            j++;
            i=0;

            continue;
            
        }
        i++;

    }

我解决了问题,感谢您的帮助。 我必须为每一行分配内存,否则我的文件向量总是指向同一个缓冲区。 在将 temp 的值赋予文件之前,我刚刚添加了以下行:

files[j] = (char*) malloc ((char) * strlen(temp) 的大小;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM