Я вроде как новый для операций с файлами, используемых в C. Я хочу прочитать файл, скопировать его содержимое в буфер и затем скопировать содержимое из этого буфера в новый файл. (Цель для использования этого буфера в другой задаче) Я использую приведенный ниже код для чтения моего файла в буферПрочитайте файл в буфере, затем напишите буфер в новом файле
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * fileP;
long size;
char * buffer;
size_t final;
fileP= fopen ("C:\\Users\\test.pdf" , "rb");
if (fileP==NULL) {fputs ("File error",stderr);
exit (1);
}
// calculating file size
fseek (fileP, 0 , SEEK_END);
size = ftell (fileP);
rewind (fileP);
// allocating mem for file
buffer = (char*) malloc (sizeof(char)*size);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
// copying file into buffer
final = fread (buffer,1,size,fileP);
if (final != size)
{
fputs ("Reading error",stderr);
exit (3);
}
// the whole file is now loaded in the memory buffer.
fclose (fileP);
free (buffer);
return 0;
}
Я знаю, что нужно использовать FWRITE для записи содержимого буфера в к новый файл, но я не могу понять, какие параметры будут записаны в нем. Или есть лучшее решение для этого?
Вы будете счастливы услышать, что вы можете использовать * точные параметры *, как в 'fread'! – usr2564301
Вы записываете в новый файл так же, как вы читаете из старого файла. т. е. вы должны использовать 'fwrite' для записи файла. –
@RadLexus вы имеете в виду fwrite? fwrite (buffer, 1, size, fileP) – Jane