Asked May 28th, 7:41 PM 61 0 0
  • 61 0 0
0

Đọc file trong C

Share
  • 61 0 0

Em đang nghiên cứu về lời gọi hệ thống, em muốn đọc file đến cuối dòng và sau đó lưu vào một biến. Em làm như sau:

#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>

void readLine(int fd, char** content, int* size) {
    int bytes = 0;
    char c;
    if (*content != NULL)
        free(*content);
    *content = NULL;
    while (read(fd, &c, 1) != 0) {
        *content = (char*)realloc(*content, ++bytes);
        if (c == '\n') {
            (*content)[bytes - 1] = 0;
            break;
        }
        (*content)[bytes - 1] = c;
    }
    *size = bytes;
}

Em thấy rằng việc đòng từng ký tự rồi thu hồi cấp phát liên tục như thế khá tốn kém, cho em hỏi là có cách nào đỡ tốn kém hơn không ạ.