Шрифт:
Строки 33–41 определяют структуру
В случае, когда время должно обновляться вручную, код осуществляет обновление, прочитав сначала из файла байт, а затем записав его обратно. (Первоначальный touch Unix работал таким способом.) Операции следующие:
1. Открыть файл, строка 58.
2. Вызвать для файла
3. Прочесть один байт, строка 61 Для наших целей
4. Переместиться обратно на начало файла с помощью
5. Записать байт обратно, строка 63.
6. Если файл имеет нулевой размер, использовать
7. Закрыть файл, строка 69.
Все эти шаги осуществляются в одной длинной последовательной цепи проверок внутри
Функция
5.5.4. Использование
В исходных системах Unix были только системные вызовы
Однако, после открытия файла условие состязания больше не представляет проблему. Программа может использовать
Когда программа знает, что файлы те же самые, владение или права доступа могут быть изменены с помощью
Эти системные вызовы, также как
Соответствующих функций
63
5.6. Резюме
• Иерархия файлов и каталогов, как она видится пользователю, является одним логическим деревом, корень которого находится в
• Каталоги осуществляют связь между именами файлов и индексами. Концептуально содержимое каталога, которое является просто последовательностью пар (индекс, имя). Каждый элемент каталога для файла называется (прямой) ссылкой, а файлы могут иметь множество ссылок. Прямые ссылки, поскольку они работают лишь по номеру индекса, все должны находиться в одной файловой системе. Символические ссылки являются указателями на файлы или каталоги и работают на основе имени файла, а не номера индекса, поэтому их использование не ограничено одной и той же файловой системой.
• Прямые ссылки создаются с помощью
• Каталоги создаются с помощью