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.