簡體   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