Программа для копирования файлов: копируется только первый символ - C (СИ)
Формулировка задачи:
Доброго время суток, пытаюсь создать программу для копирования файлов. Проблема состоит в том что только первый символ копируется из файла. Может ошибка находится в while-цикле
#include <stdio.h> #include <fcntl.h> #include <stdlib.h> #define BUF_SIZE 512 int main() { int fd_input, fd_output; char buffer[512]; size_t bytes_read, bytes_write; fd_input = open("new_file.txt",O_RDONLY); if (fd_input == -1) { perror("open:"); exit(EXIT_FAILURE); } fd_output = open("copy_file.txt", O_WRONLY|O_CREAT); if (fd_output == -1) { perror ("open:"); exit (EXIT_FAILURE); } while (bytes_read = read (fd_input, &buffer, BUF_SIZE)>0) { bytes_write = write (fd_output, &buffer, bytes_read); if (bytes_write != bytes_read) { perror ("read:"); exit (EXIT_FAILURE); } } close(fd_input); close(fd_output); return 0; }
Решение задачи: «Программа для копирования файлов: копируется только первый символ»
textual
Листинг программы
while ((bytes_read = read (fd_input, buffer, BUF_SIZE))>0)
Объяснение кода листинга программы
- В цикле while происходит чтение файла с помощью функции read.
- Переменная bytes_read содержит количество реально прочитанных байт.
- В качестве аргументов функции read переданы:
- fd_input - дескриптор файла для чтения.
- buffer - указатель на буфер для чтения данных.
- BUF_SIZE - размер буфера в байтах.
- Условие цикла while - это больше нуля, то есть пока файл не закончился, цикл продолжается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д