创建错误消息文件。
mkstr [ - ] MessageFile Prefix File ...
mkstr 命令创建错误消息的文件,这些消息能从单个或多个 C 源文件中删除。它的使用能减少包含许多错误诊断的程序的大小,并且能降低运行此类程序的系统开销,因为错误消息不会持续交换进出源文件了。
mkstr 命令处理每个由 File 参数指定的文件,将文件的已处理版本放置在文件中,该文件的名称由 Prefix 参数指定,后面跟原名。
要把源文件的错误消息处理到由 MessageFile 参数指定的文件中,mkstr 在输入流中键入字符串 'error("'。以 '"' (双引号)开始的字符串,放在消息文件中并且后面跟空字符和换行符。空字符终止消息,所以在检索时容易使用。有了换行符就能通过使用 cat 命令来查看错误消息文件的内容。
输入文件处理过的副本包含一个 lseek 指针,这个指针用来检索该消息到其相应的源文件,如以下示例所示:
char efilname[] = "/usr/lib/pistrings"; int efil = -1; error(a1, a2, a3, a4) { char buf[256]; if (efil < 0) { efil = open(efilname, 0); if (efil < 0) { oops: perror(efilname); exit(1); } } if (lseek(efil,(long) a1,0) <0|| read(efil,buf, 256) <= 0) goto oops; printf(buf, a2, a3, a4); }
- | 可选的 -(减号标志)使错误消息放置在 MessageFile 的结尾以重新编译大的 mkstr 程序的一部分。 |
mkstr pistrings xx *.c
mkstr - pistrings xx newfile.c
/usr/ccs/bin/mkstr | 包含 mkstr 命令。 |
lseek 子例程。