Копирование файла с использованием стандартной библиотеки языка C
Как видно из текста программы 12.2, стандартная библиотека С поддерживает объекты потоков ввода/вывода FILE, которые напоминают, несмотря на меньшую общность, объекты Windows HANDLE, представленные в программе 12.3.
Листинг 12.2. Копирование файлов с использованием библиотеки С
____________________________________________________________________
/* Программа копирования файлов cpC.
Реализация, использующая библиотеку C. */
/* срC file1 file2: Копировать файл1 в файл2. */
# include <iostream.h>
# include <stdio.h>
# include <errno.h>
# define BUF_SIZE 256
int main (int argc, char *argv [])
{
FILE *in_file, *out_file;
char rec [BUF_SIZE];
Size_t bytes_in, bytes_out;
if (argc != 3) {
cout<< "Use: срС file1 file2\n";
Return 1;
}
in_file = fopen (argv [1], "rb");
if (in_file == NULL) {
perror (argv [1]);
Return 2;
}
out_file = fopen (argv [2], "wb"); if (out_file == NULL) {
perror (argv [2]);
Return 3;
}
/* Обработать входной файл по одной записи за один раз.*/
while((bytes_in = fread (rec, 1, BUF_SIZE, in_file))>0) {
bytes_out = fwrite (rec, 1, bytes_in, out_file);
if (bytes_out != bytes_in) {
perror ("Неустранимая ошибка записи.");
Return 4;
}
}
fclose (in_file);
fclose (out_file);
return 0;
}
Предположим, что с помощью приведенной программы мы хотим содержание файла my.doc скопировать в файл my2.doc. Тогда в командной строке нужно набрать следующее
Дата добавления: 2014-12-13; просмотров: 1733;