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