Есть файл. Предположим его размер 50455 кб, мне нужно прочитать его полностью, но каждые 1024 кб записывать как const char *.
Как это лучше сделать?
Пишу под ubuntu, есть внутренний метод read, но с помощью него можно прочитать сразу весь файл, можно ли как-то сделать на момент чтения сразу формировать конечный массив из const char* ? Можно ли это сделать как-то корректно через fread?
Вот так я, например, читаю весь файл:
size_t filesize = (std::filesystem::file_size("путь"));
char *buf = (char*) malloc(filesize);
FILE *file = fopen("путь до файла", "b");
fread(buf, 1, filesize, file);
fclose(file);
что-то подобное для чтения по частям
char *inputData = malloc(dataLen);
char *p = inputData;
size_t bytesLeft = dataLen;
while (bytesLeft) {
size_t bytesRead = fread(p, 1, 1024, f);
bytesLeft -= bytesRead;
p += bytesRead;
if (ferror(f) != 0) {
fprintf(stderr, "ERROR: fread() failed\n");
free(inputData);
fclose(f);