Арнольд Роббинс - Linux программирование в примерах
101
Ну, мы игнорируем мысль, что два супруга могли бы хотеть поговорить друг с другом и насладиться компанией — Примеч. автора.
102
В одно и то же время есть только один сопроцесс по умолчанию (доступный посредством 'read -p' и 'print -p'). Сценарии оболочки могут использовать команду exec со специальной записью перенаправления для назначения дескрипторов файла сопроцесса определенным номерам. После этого можно запустить другой сопроцесс — Примеч. автора.
103
Очевидно, вы можете их закрыть. Но если вы не знаете, что они открыты, они теряются с таким же успехом, как и память через утечку памяти — Примеч. автора.
104
Игра слов kill-overkill (избыточно — overkill) — Примеч. перев.
105
По крайней мере один поставщик дистрибутивов GNU/Linux отменяет сознание файлов core «с иголочки». Для повторного подключения этой возможности поместите в свой файл ~/.profile строку 'ulimit -S -с unlimited' — Примеч. автора.
106
Handler (англ.) — обработчик — Примеч. перев.
107
Изменение поведения было плохой мыслью, сильно критиковавшейся в свое время, но было слишком поздно. Изменение семантики определенного интерфейса всегда ведет к проблеме, как было в этом случае. Хотя это особенно относится к проектировщикам операционных систем, любой, кто разрабатывает библиотеки общего назначения, также должен помнить этот урок. — Примеч. автора.
108
Хотя мы описываем read(), эти правила применяются ко всем системным вызовам, которые могут завершиться с ошибкой EINTR, как, например, семейство функций wait() — Примеч. автора.
109
Для использования API требуется компоновка с отдельной библиотекой, — ljobs — Примеч. автора.
110
Насколько мы смогли определить, имена SA_NOMASK и SA_ONESHOT являются специфическими для GNU/Linux. Если кому-нибудь известно иное, пожалуйста, сообщите нам!
111
Наша благодарность Ульриху Дрепперу (Ulrich Drepper) за помощь в разъяснении, связанных с этим проблем — Примеч. автора.
112
Исторически системы BSD использовали имя SIGCHLD, которое используется и POSIX. В System V есть сходный сигнал с именем SIGCLD. GNU/Linux определяет последний через #define как первый — см. табл. 10.1 — Примеч. автора.
113
Возможно, лучшим именем для функции было бы child_at_school() [ребенок_в_школе] — Примеч. автора.
114
MacOS X и Windows XP обе являются многопользовательскими системами, но это довольно недавние разработки — Примеч. автора.
115
Хотя в Соединенных Штатах нет официальных удостоверений личности, во многих странах они имеются — Примеч. автора.
116
Денис Ричи (Dennis Ritchie), создатель С и соавтор Unix, получил патент для бита setuid: Protection of Data File Contents (Защита содержимого файла данных), номер патента США 4135240. См. http://www.delphion.com/details?pn=US04135240__, а также http://www.uspco.gov. AT&T передала патент общественности, разрешив всем использовать свою технологию — Примеч. автора.
117
Безопасность для систем GNU/Linux и Unix является глубокой темой сама по себе. Это просто пример. см. раздел 11.9 «Рекомендуемая литература» — Примеч. автора.
118
Одной из программ, разработанных с этой целью, является GNU userv (ftp://ftp.gnu.org/gnu/userv/) — Примеч. автора.
119
На ум приходят образы счастливых юных программ их лица и руки, запачканные шоколадом — Примеч. автора.
120
E (Effective) эффективный ID, R (Real) действительный ID и S (Saved) сохраненный ID — Примеч. науч. ред.
121
Однако, в своей лекции в честь присуждения премии Тьюринга Ассоциации по вычислительной технике в 1981 г. д-р Хоар утверждает, что эту идею выдвинул сам Алан Тьюринг — Примеч. автора.
122
Как упоминалось в разделе 10.2 «Действия сигналов», некоторые дистрибутивы GNU/Linux запрещают создание файлов core. Чтобы снова разрешить их, поместите в свой файл ~/.profile строку 'ulimit -S -с unlimited' — Примеч. автора.
123
Hints On Programming Language Design, C.A.R. Hoare Stanford University Computer Science Technical Report CS-73-403 (ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/73/403/CS-TR-73-403.pdf). December, 1973 — Примеч. автора.
124
См. wс(1). wc подсчитывает строки, слова и символы — Примеч. автора.
125
Такое использование /dev/shm на самом деле является злоупотреблением,, он предназначен для использования в реализации разделяемой памяти, а не в качестве электронного диска. Тем не менее, это полезно для иллюстрации нашей мысли — Примеч. автора.
126
На нашей системе 512 мегабайтов оперативной памяти, что для старых чудаков вроде автора кажется порядочным. Однако цены на память упали, и вполне обычны системы с одним или более гигабайтами оперативной памяти, по крайней мере, для разработчиков программного обеспечения — Примеч. автора.
127
Пространство для подкачки состоит из одного или более выделенных участков диска, используемых для хранения частей исполняющегося процесса, который не находится в настоящее время в памяти — Примеч. автора.
128
Такая утечка была у нас в gawk К счастью, она исправлена — Примеч. автора.
129
Numerical Recipes in С. The Art of Scientific Computing,, 2nd edition, by William H. Press, Brian P. Plannery, Saul A. Teukolsky, and William T. Vetterling. Cambridge University Press, USA, 1993, ISBN 0-521-43108-5 — Примеч. автора.
130
См /usr/source/s1/glob.c в дистрибутиве V6
131
http://www.cs.bell-labs.com/cm/cs/pearls/ — Примеч. автора.
132
Русский перевод: Дональд E. Кнут. Искусство программирования. Том 2. Получисленные алгоритмы (3-е издание). Москва - Санкт-Петербург - Киев. Вильямс. 2000 — Примеч. науч. ред.
133
http://www-cs-faculty.stanford.edu/~knuth/taocp.html — Примеч. автора.
134
Русский перевод — Дж. Фридл. Регулярные выражения (2-е издание). C.-Петербург, Питер, 2003 — Прим. науч. ред.
135
http://www.gnu.org/software/grep/doc/grep.html — Примеч. автора.
136
От английских слов i(nternationalizatio)n и l(ocalizatio)n —Примеч. перев.
137
NLS — native language support — Примеч. перев.
138
Существует более ранний дизайн, известный как catgets(). Хотя он стандартизован POSIX, его гораздо сложнее использовать, и мы его не рекомендуем — Примеч. автора.
139
Программисты, долгое время работавшие на С и Unix, могут предпочесть использовать локаль 'С', даже если их родной язык английский, английские локали дают другой результат по сравнению с тем, что ожидают эти седые, понюхавшие пороху ветераны Unix — Примеч. автора.
140
Мы так же счастливы, как и вы, поскольку нам не нужно представлять код, использующий эту полнофункциональную структуру — Примеч. автора.
141
В стандарте используется технический термин radix point (позиционный разделитель), поскольку числа с другим основанием счисления также могут иметь дробные части. Однако, для денежных значений можно довольно безопасно использовать термин 'decimal point' (десятичный разделитель) — Примеч. автора.
142
Нам, вероятно, следовало выбрать более осмысленные имена вместо простых ii и jj, поскольку использующий их код короткий, отсутствие у нас воображения не представляет значительной проблемы — Примеч. автора.
143
Это устанавливается механизмом Autoconf и Automake. Autoconf и Automake являются мощными программными наборами, дающими возможность поддержки широкого круга Unix-систем систематическим образом — Примеч. автора.