Задание 4: файлы

Задание

Написать программу на языке С, которая через аргументы командной строки получает имя файла (заданный путем), и новый путь, и копирует этот файл в новое место. Программа должна обрабатывать ошибки.

Дополнение к заданию (опционально)

  1. Если путь к файлу не существует, нужно создать соответствующие каталоги.
  2. Выводить информацию о файле (размеры, владелец, время создания и т.д.)

Полезные функции

  1. Переменная errno

    • код последней ошибки
  2. Функция

    void perror( const char *string );
    
    • вывод текста об ошибке
  3. Функции

    int open(const char *pathname, int flags);
    int open(const char *pathname,
    int flags, mode_t mode);
    int creat(const char *pathname, mode_t mode);
    
    • открытие файла
  4. Функция

    int close(int fd);
    
    • закрытие файла
  5. Функция

    ssize_t read(int fd, void *buf, size_t count);
    
    • чтение из файла
  6. Функция

    ssize_t write(int fd, const void *buf, size_t count);
    
    • запись в файл
  7. Функция

    off_t lseek(int fd, off_t offset, int whence);
    
    • перемещение в файле
  8. Функция

    int mkdir(const char *pathname, mode_t mode);
    
    • создание каталога
  9. Функция

    int rmdir(const char *pathname);
    
    • удаление каталога
  10. Функция

    int remove(const char *pathname);
    
    • удаление файла или каталога
  11. Функция

    int unlink(const char *pathname);
    
    • удаление файла
  12. Функция

    int rename(const char *oldpath, const char *newpath);
    
    • переименование или перемещение файла.
  13. Функция

    int stat(const char *path, struct stat *buf);
    

    -получение информации о файле

Полезные заголовки

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>