ЛР2. Дескрипторная обработка файлов.

Задание

Коннектор файлов

Для решения задачи следует использовать дескрипторные функции работы с файлами (open, close, write, read, lseek и т.п.). Использование позиционирования - на усмотрение студента. Обработка целевого файла предполагает получение эксклюзивного доступа к нему процессом на время обработки (например - с помощью функции блокировки flock).

Программа-коннектор эмулирует действия по объединению множеств. Программа принимает набор имен исходных файлов в качестве параметров командной строки. Каждый файл содержит набор неповторяющихся в пределах файла числовых значений. Аналогичным образом заполнен файл set.dat, который не может присутствовать в списке исходных файлов. Программа должна дополнить файл set.dat такими числовыми значениями из исходных файлов, которые отсутствуют в set.dat. По окончании работы файл set.dat также должен содержать набор неповторяющихся значений.

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

Формат и размер числовых значений в файлах выбирается студентом самостоятельно.
Если выбран бинарный (не текстовый) формат файлов, то дескрипторный доступ к файлам будет упрощен, так как каждое числовое значение будет занимать в файле одинаковое количество байт, но при этом студент должен будет дополнительно разработать программы для первоначального заполнения файлов и вывода их содержимого на экран.
Если выбран текстовый формат файлов, то дескрипторный доступ к файлам будет усложнен, так как каждое числовое значение может занимать в файле разное количество байт, но заполнение и анализ результатов может осуществляться вручную, без разработки дополнительных программ.