MS-DOS для программиста


Программа BUFCOPY - часть 2


// Копируем без использования буферизации if((stream_from = fopen (argv[1], "rt")) == NULL) return(-1);

stream_to = fopen (argv[2], "wt+"); setvbuf (stream_from, NULL, _IONBF , 0); setvbuf (stream_to, NULL, _IONBF , 0);

start = clock(); filecpy(stream_from,stream_to); end = clock();

printf("Время копирования: %5.1f " "Буферизация не используется\n", ((float)end - start) / CLK_TCK);

return(0); }

// Функция для копирования файлов void filecpy(FILE *stream_from, FILE *stream_to) { char linebuf[256];

// Цикл копирования. Условие выхода из цикла - // достижение кнеца входного файла while(!feof(stream_from)) { // Читаем в буфер linebuf одну строку if(fgets (linebuf, 255, stream_from) == NULL) break;

// Записываем содержимое буфера linebuf // в выходной файл if(fputs (linebuf, stream_to) != 0) break; }

// Закрываем входной и выходной файлы fclose (stream_from); fclose (stream_to); }




Начало  Назад  Вперед



Книжный магазин