Linux программирование в примерах - Арнольд Роббинс
Шрифт:
Интервал:
Закладка:
143
Это устанавливается механизмом Autoconf и Automake. Autoconf и Automake являются мощными программными наборами, дающими возможность поддержки широкого круга Unix-систем систематическим образом — Примеч. автора.
144
Хотя американцы часто ссылаются на эры определенных президентов, они не являются частью национального календаря в том же смысле, как в Японии до Второй мировой войны или в докоммунистическом Китае — Примеч. автора.
145
Подробности приведены в документации GNU gettext. Здесь мы концентрируемся на потребностях разработчика, а не переводчика — Примеч. автора.
146
Этот макрос обычно определяется автоматически программой configure, либо в специальном заголовке, либо в командной строке компилятора configure создается с помощью Autoconf и Automake — Примеч. автора.
147
Pig — свинья, поросенок (англ.) — Примеч. перев.
148
Мы тщетно потратили 30 или 45 минут, пытаясь использовать каталог piglat/LC_MESSAGES и установку LC_ALL=piglat' без всякого успеха, пока не выяснили это — Примеч. автора.
149
ftp://ftp.gnu.org/gnu/gettext — Примеч. автора.
150
http://www.unicode.org — Примеч. автора.
151
GNU/Linux ее поддерживает, но лишь для совместимости — Примеч. автора.
152
Справочная страница GNU/Linux fcntl(3) указывает, что этих сведений может быть недостаточно, процесс может находиться на другой машине! При блокировках по сети есть и другие проблемы, в общем, использование блокировки в файловых системах, смонтированных для удаленных компьютеров, не является удачной мыслью — Примеч. автора.
153
В системе GNU/Linux lockf() реализована в виде «оболочки» вокруг fcntl() — Примеч. автора.
154
Тупик (deadlock) является ситуацией, при которой оба процесса блокируются, причем каждый из них ждёт, пока другой освободит определенный ресурс — Примеч. автора.
155
Удачно, что название flock() отличается от lockf(), поскольку их семантика различна. Это также страшно сбивает с толку. Держите свое руководство под рукой. — Примеч. автора.
156
В справочной странице gettimeofday(2) документирована соответствующая функция settimeofday() для использования суперпользователем (root) для установки времени дня всей системы — Примеч. автора.
157
К сожалению, по-видимому, в настоящее время нет стандарта для названий членов struct stat, что делает такую операцию непереносимой — Примеч. автора.
158
Корректное выполнение профилировки нетривиальная задача, если вы думаете о написании интерпретатора, стоит сначала провести свои исследования — Примеч. автора.
159
В голову приходят образы, как маленькие двоичные структуры данных сидят друг рядом с другом за чаем и пирожными. По крайней мере, такое бывает, если вы проводите слишком много времени перед своим компьютером. — Примеч. автора.
160
Этот вывод для часового пояса U.S. Eastern Time zone — Примеч. автора.
161
Оптимизации компилятора являются общеизвестным козлом отпущения для логических ошибок. В прошлом обвинения компиляторов были более оправданы. Судя по нашему опыту, используя современные системы и компиляторы, очень редко можно обнаружить случаи, в которых оптимизации компилятора привносят ошибки в работающий код — Примеч. автора.
162
Мы говорим об оригинальном BSD dbx. В течение десяти лет мы использовали исключительно GDB — Примеч. автора.
163
ddd поставляется со многими системами GNU/Linux. Исходный код доступен на FTP-сайте проекта GNU ddd (ftp://ftp.gnu.org/gnu/ddd/) — Примеч. автора.
164
http.//sources.redhat.com/insight/ — Примеч. автора.
165
ftp://ftp.gnu.org/gnu/gdb/ — Примеч. автора.
166
http://www.gnu.org — Примеч. автора.
167
Если вы хотите изменить такое поведение, см. sysctl(8) — Примеч. автора.
168
Примерно 213×275 мм — Примеч. перев.
169
Bjarne Stroustrup, создатель С++, настойчиво работал над тем, чтобы сделать использование препроцессора С совершенно ненужным в С++. По нашему мнению, он не вполне добился успеха: #include нужен до сих пор, но не обычные макросы. Для С препроцессор остается ценным и инструментом, но он должен использоваться благоразумно — Примеч. автора.
170
Серьезно! Часто люди пропускают через gawk мегабайты данных. Помните, никаких произвольных ограничений! — Примеч. автора.
171
Мы унаследовали эту схему. В общем, она работает, но все же есть проблемы. Целью данного раздела является передача накопленного нами в ходе работы с объединениями опыта — Примеч. автора.
172
Опять-таки, GCC 3.1 или более новый и GDB 5 дают возможность непосредственного использования макросов, но только лишь если вы используете их совместно, с определенными опциями. Это было описано ранее в разделе 15.4.1.2 «По возможности избегайте макросов с выражениями». — Примеч. автора.
173
Эта часть кода была с тех пор пересмотрена, поэтому там больше нет этих строк из примера. — Примеч. автора.
174
Переписав код управления буфером! — Примеч. автора.
175
ftp://ftp.ninemoons.corn/pub/dbug/ — Примеч. автора.
176
В C99, который допускает смешивание объявлений переменных с исполняемым кодом, это составляет меньшую проблему, но помните, что этот пакет был разработан для K&R С — Примеч. автора.
177
Хотя нам следовало бы усвоить свой урок после первой компании, мы перешли ко второй. С тех пор, как мы это выяснили, мы обычно избегаем начинающие компании. Ваша выгода, конечно, может меняться — Примеч. автора.
178
ftp://ftp.perens.com/pub/ElectricFence — Примеч. автора.
179
GDB также позволяет определить переменную окружения LD_PRELOAD: set environment LD_PRELOAD=PATH_TO_YOUR_LIBRARY — Примеч. науч. ред.
180
http://www.dmalloc.com — Примеч. автора.
181
Все в большей степени для разработки высококачественных продуктов используется также GNU/Linux! — Примеч. автора.
182
http://www.winehq.com — Примеч. автора.
183
http://valgrind.kde.org — Примеч. автора.
184
http://www.linuxjournal.com/article.php?sid=6059 — Примеч. автора.
185
http://www.linuxjournal.com/article.php?sid=6556 — Примеч. автора.
186
http://www.splint.org — Примеч. автора.
187
http://www.debuggingrules.com — Примеч. автора.
188
http://www.amacombooks.org — Примеч. автора.
189
http://www.cs.bell-labs.com/cm/cs/pearls/ — Примеч. автора.
190
Русский перевод Брайан Керниган, Роб Пайк. UNIX: Программное окружение. Санкт-Петербург. Символ-Плюс, 2003 — Примеч. науч. ред.
191
Это приложение приведено в буквальном виде с веб-страницы, указанной вначале — Примеч. автора.
192
http://www1.neweb.ne.jp/wa/yamdas/column/technique/21-daysj.html — Примеч. автора.
193
http://loro.sf.net/notes/21-dias.html — Примеч. автора.