Home » Programming Languages » C Programs » Read the contents of a file into character buffer using C program

Read the contents of a file into character buffer using C program

Lets say we want to read the contents of some file and want to operate on these contents using C program. In this case, we first need to read the complete file into buffer and work on to this character buffer to do what we want to do.

Following c program, copied the contents of JSON file test_file.json into buffer [ You can do whatever you want which this bufffer ]

 $ vim read_file_to_buffer.c 
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
 
char *read_file(const char *filename) {
        ssize_t size;
        int fd, len;
        struct stat st;
        char *buf;

        stat(filename, &st);
        len = st.st_size;

        buf = (char *)malloc(len+1);

        fd = open(filename, O_RDONLY);
        if (fd == -1) {
                free(buf);
                return NULL;
        }

        size = read(fd, buf, len);
        if (size > 0) {
                buf[len]='\0';
                close(fd);
                printf("read bytes : %d, len:%d\n", strlen(buf), len);
                return buf;
        }

        close(fd);
        return NULL;
}

 
int main(void) {
    char *buf = NULL;
 
    buf = read_file("./test_file.json");
 
    free( buf );
    return 0;
}

Compile the above code as,

 $ gcc -o read_file_to_buffer read_file_to_buffer.c 

Run the program as,

 $ ./read_file_to_buffer 

This program assumes, the file we need to read test_file.json is present in the current directory from where this program is executed, if not you can customise the program as you want.


Subscribe our Rurban Life YouTube Channel.. "Rural Life, Urban LifeStyle"

Leave a Comment