Предпосылки Великого раскола Все указанные усовершенствования, хотя и существенно улучшали жизнь пользователей, но никак не могли рассматриваться в качестве революционных. Что не нравилось некоторым участникам проекта XFree86, в первую очередь – одному из его
Глава 4 1. Если бы дескриптор fd[1] остался открытым в дочернем процессе при завершении родительского, его операция read для этого дескриптора не вернула бы признак конца файла, потому что дескриптор был бы еще открыт в дочернем процессе. Закрытие fd[1] гарантирует, что после
Глава 5 1. Сначала создайте очередь, не указывая никаких атрибутов, а затем вызовите mq_getattr для получения атрибутов по умолчанию. Затем удалите очередь и создайте ее снова, используя значения по умолчанию для всех неуказанных атрибутов.2. Для второго сообщения сигнал не
Глава 6 1. Оставшиеся программы должны принимать идентификатор очереди в числовом виде (вместо полного имени). Это изменение можно осуществить путем добавления нового аргумента командной строки или с помощью предположения, что полное имя, состоящее из одних цифр,
Глава 7 2. Вероятно, процесс завершит работу, прежде чем потребитель успеет сделать все, что нужно, поскольку вызов exit завершает все выполняющиеся потоки.3. В Solaris 2.6 удаление вызова функций типа destroy приводит к утечке памяти, из чего становится ясно, что функции init
Глава 9 1. В зависимости от системы может потребоваться увеличивать счетчик до значений, больших 20, чтобы наблюдать ошибку.2. Для отключения буферизации стандартного потока мы добавляем строкуsetvbuf(stdout, NULL, _IONBF, 0);к функции main перед циклом for. Это не должно ни на что влиять,
Глава 10 1. Вот результат работы в Solaris 2.6:solaris % deadlock 100prod: calling sem_wait(nempty) i=0 у производителяprod: got sem_wait(nempty)prod: calling sem_wait(mutex)prod: got sem_wait(mutex), storing 0prod: calling sem_wait(nempty) i=1 у производителяprod: got sem_wait(nempty)prod: calling sem_wait(mutex)prod: got sem_wait(mutex), storing 1prod: calling sem_wait(nempty) начало следующего цикла, но места
Глава 11 1. Нужно изменить только одну строку:< semid = Semget(Ftok(argv[optind], 0), 0, 0);…> semid = atol(argv[optind]);2. Вызов ftok вернет ошибку, что приведет к завершению работы обертки Ftok. Функция my_lock могла бы вызывать ftok перед semget, проверять, не возвращается ли ошибка ENOENT, а затем создавать файл,
Глава 12 1. Размер файла увеличится еще на 4096 байт (до 36864), но обращение к новому концу файла (36863) может привести к отправке сигнала SIGSEGV, поскольку размер области отображения в памяти равен 32768 байт. Причина, по которой мы говорим «может», а не «должен», — в неопределенности
Глава 13 1. В листинге Г.8 приведен текст измененной версии листинга 12.6, а в листинге Г.9 — текст новой версии листинга 12.7. Обратите внимание, что в первой пpoгрaммe мы устанавливаем размер объекта вызовом ftruncate; lseek и write использовать для этого нельзя.Листинг Г.8. Отображение с
Кафедра Ваннаха: До и после Великого Кольца Ваннах Михаил Опубликовано 07 октября 2011 года Связь с внеземными цивилизациями – одна из «городских легенд» современного естествознания. В принципе нет никаких законов природы, ограничивающих
Гаджеты-неудачники: от великого до смешного Михаил Карпов Опубликовано 20 октября 2010 года Хотя фонд Mozilla известен в основном тем, что разрабатывает браузер Firefox, его сотрудники иногда занимаются престранными проектами. Дизайнер Билли Мэй, к примеру,
Голубятня: Рецепт успеха Великого Гэтсби Сергей Голубицкий Опубликовано 21 сентября 2013 Зачем разлучница-судьба - Всегда любви помеха? И почему любовь — раба Достатка и успеха? В мае состоялась премьера «Великого Гэтсби», пятая по счету
Глава восемнадцатая Спустя полторы недели мне пришло сообщение от Игоря. Он ожидал меня и Костю в Кемерово. Поэтому быстро собрав манатки, мы выдвинулись в путь.— Решил уже, куда поедешь?— Axa, сначала в Питер к Иришке. После вместе с ней хочу в Париж.— Серьезно? Не