У меня есть этот кусок C код:
[...]
struct stat info;
char *filename = "just_a_binary_file";
stat(filename, &info);
printf("FILE SIZE: %d\n", info.st_size);
char *content = (char *)malloc(info.st_size * sizeof(char *));
FILE *fp = fopen(filename, "rb");
fread(content, info.st_size, 1, fp);
fclose(fp);
printf("STRING LENGTH: %d\n", strlen(content));
[...]
вывод:
FILE SIZE: 20481
STRING LENGTH: 6
проблема в том, что файл содержит несколько нулевых байтов, и когда я помещаю содержимое файла в переменную char *, строка усекается при первом появлении '\ 0' (точно chr (0)).
Вопрос в том, как я могу получить полный двоичный контент в переменную char *?