Домашнее задание 1 (файлы)

Указания:

  • Программа должна получать входные данные (имена файлов и. т. д.) через аргументы командной строки.
  • При необходимости результат должен выводиться в стандартный поток вывода.
  • Работа с файлами должна осуществляться средствами API POSIX.
  • Один байт соответствует типу данных char, signed char или unsigned char в языке программирования C.

Варианты

  1. Скопировать содержимое одного файла в другой.
  2. Сравнить содержимое двух файлов: вывести номер позиции первого отличия (байты не совпадают по значению, один из файлов закончился) и значения отличающихся байтов.
  3. Вычислить "контрольную сумму" файла: байт, являющийся результатом выполнения побитовой операции "исключающее или" для всех байт файла.
  4. Зашифровать содержимое файла с записью в другой файл. Шифрование должно выполняться при помощи побитовой операции "исключающее или" каждого исходного байта с соответствующим байтом заданного ключа (строки) некоторой длины, повторенного при необходимости нужное количество раз.
  5. Определить количество вхождений в файл заданного байта.
  6. Скопировать содержимое файла в другой, пропуская байты с заданным значением.
  7. Скопировать содержимое файла в другой в обратном порядке.
  8. Скопировать содержимое файла в другой с "циклическим сдвигом" содержимого на заданное количество байт влево: сначала скопировать содержимое файла с заданной позиции до конца, затем дописать начало файла до этой позиции.