Why is the while loop condition checked after the loop body executes ?
int print_user(const User *user) {
    if(user == NULL) {
        return 1;
    }
    FILE *file_ptr = fopen(user->profile_pic, "r");
    if(file_ptr == NULL) {return 1;}
    if(file_ptr != NULL) {
        char *profile_img_char = malloc(sizeof(char));
        if(profile_img_char== NULL) {
        perror("malloc");
        exit(5);
    }

    while(fread(profile_img_char, sizeof(char), 1, file_ptr) != 0) {
        printf("%s", profile_img_char);
    }
    printf("\n");

    fclose(file_ptr);
    free(profile_img_char);
    
    }
}