Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 226 из 715

Какие из системных функций, описанных в этой главе, могли бы использоваться? Какие опасности подстерегают при использовании этих методов?

12. Ричи заявлял (см. [Ritchie 81]), что захвата файла недостаточно для того, чтобы предотвратить путаницу, вызываемую такими программами, как редакторы, которые создают копию файла при редактировании и переписывают первоначальный файл по окончании работы. Объясните, что он имел в виду, и прокомментируйте.

13. Рассмотрим еще один способ блокировки файлов, предотвращающий разрушительные последствия корректировки. Предположим, что в индексе содержится новая установка прав доступа, позволяющая только одному процессу в текущий момент открывать файл для записи и нескольким процессам открывать файл для чтения. Опишите реализацию этого способа.

main(argc, argv)

int argc;

char *argv[];

{

 if (argc != 2)  {

  printf("введите: команда имя каталога\n");

  exit();

 }

 /* права доступа к каталогу: запись, чтение и исполнение разрешены для всех */

 /* только суперпользователь может делать следующее */

 if (mknod(argv[1], 040777, 0) == -1)  printf("mknod завершилась неудачно\n");

}

Рисунок 5.37. Каталог, создание которого не завершено

*14. Рассмотрим программу (Рисунок 5.37), которая создает каталог с неверным форматом (в каталоге отсутствуют записи с именами "." и ".."). Попробуйте, находясь в этом каталоге, выполнить несколько команд, таких как ls - l, ls - ld, или cd. Что произойдет при этом?

15.

|< Пред. 224 225 226 227 228 След. >|

Java книги

Контакты: [email protected]