MKSTR(1) Справочник основных команд FreeBSD MKSTR(1)
НАЗВАНИЕ
mkstr -- создать файл сообщений об ошибках, манипулируя исходным текстом
на C
СИНТАКСИС
mkstr [-] файл_сообщений префикс файл ...
ОПИСАНИЕ
Утилита mkstr создаёт файл, содержащий сообщения об ошибках, извлечённые
из исходного текста на C, и изменяет исходный текст таким образом, чтобы
использовался созданный файл сообщений. Целью создания mkstr было умень-
шение размера больших программ и снижение свопинга (см. ПРОБЛЕМЫ ниже).
Утилита mkstr обрабатывает каждый из заданных файлов, помещая модифициро-
ванную версию исходного текста в файл, имя которого состоит из заданного
префикса и исходного имени. Типичный пример использования mkstr:
mkstr pistrings xx *.c
В результате выполнения этой команды все сообщения об ошибках из файлов с
исходным текстом на C в текущем каталоге будут помещены в файл pistrings,
а изменённые копии исходных файлов будут сохранены в файлы с именами,
начинающиеся с ``xx''.
Опции:
- Сообщения об ошибках помещаются в конец указанного файла сообще-
ний для перекомпиляции части большой программы, обработанной
mkstr.
Утилита mkstr находит сообщения об ошибках в исходном тексте по строке
`error("' во входном потоке. Каждый раз, когда она встречается, C
строка, начинающаяся с `"', сохраняется в файле сообщений с добавлением
нулевого символа и символа перевода строки. Изменённый исходный текст
использует указатели lseek(2) для извлечения строки из файла сообщений.
char efilname = "/usr/lib/pi_strings";
int efil = -1;
error(a1, a2, a3, a4)
{
char buf[256];
if (efil < 0) {
efil = open(efilname, 0);
if (efil < 0)
err(1, "%s", efilname);
}
if (lseek(efil, (off_t)a1, SEEK_SET) < 0 ||
read(efil, buf, 256) <= 0)
err(1, "%s", efilname);
printf(buf, a2, a3, a4);
}
СМОТРИ ТАКЖЕ
gencat(1), xstr(1), lseek(2)
ИСТОРИЯ
Утилита mkstr появилась в 3.0BSD.
ПРОБЛЕМЫ
Утилита mkstr была предназначена для ограниченной архитектуры семейства
PDP 11. На самом деле, очень мало программ используют её. Экономия
памяти несущественна на современных компьютерах.
FreeBSD 6.2 1 ноября 2002 FreeBSD 6.2
Последние комментарии
11 недель 3 дня назад
35 недель 4 дня назад
2 года 36 недель назад
3 года 6 недель назад
3 года 29 недель назад
3 года 44 недели назад
3 года 45 недель назад
3 года 48 недель назад
4 года 7 недель назад
4 года 11 недель назад