mkcatdefs 命令
用途
预处理消息源文件。
语法
mkcatdefs SymbolName SourceFile...[ -h ]
描述
mkcatdefs 命令预处理输入到 gencat 命令的消息源文件。
SourceFile 消息文件包含符号标识。 mkcatdefs 命令生成 SymbolName_msg.h 文件,它包含等同于带有由 mkcatdefs 命令指定的集合号和消息 ID 号的符号标识的语句。
mkcatdefs 命令创建两个输出。 第一个是名为SymbolName_msg.h 的头文件。 您必须在应用程序中包含SymbolName_msg.h文件,以便将符号名称与mkcatdefs命令分配的集合和报文编号关联起来。
mkcatdefs 命令用编号将消息源数据发送到标准输出,而不是用符号标识。 这个输出适合于输入到 gencat 命令。 也可以按以下方式使用 mkcatdefs 命令的输出作为到 gencat 命令的输入:
- 使用带有 > (重定向符号) 的 mkcatdefs 命令将新消息源写入文件。 将这个文件用作到 gencat 命令的输入。
- 将 mkcatdefs 命令输出文件直接管道到 gencat 命令。
- 使用 runcat 命令而不是 mkcatdefs 命令。 runcat 命令通过 mkcatdefs 命令自动发送消息源文件,然后将该文件输送到 gencat 命令。
在运行 mkcatdefs 命令之后,可以在应用程序中使用符号名称来引用消息。
标志
| 项 | 描述 |
|---|---|
| -h | 禁止 SymbolName_msg.h 文件的生成。 该标志必须是 mkcatdefs 命令的最后一个参数。 |
示例
要处理symb.msg消息源文件并将输出重定向到symb.src文件,请输入:
mkcatdefs symb symb.msg > symb.src生成的symb_msg.h文件类似于以下内容:
#ifdef _H_SYMB_MSG
#define _H_SYMB_MSG
#include <limits.h>
#include <nl_types.h>
#define MF_SYMB "symb.cat"
/* The following was generated from symb.src. */
/* definitions for set MSFAC */
#define SYM_FORM 1
#define SYM_LEN 2
#define MSG_H 6
#endifmkcatdefs 命令还创建symb.src带有分配给符号标识的编号的 gencat 命令的消息目录源文件:
$quote " Use double quotation marks to delimit message text
$delset 1
$set 1
1 "Symbolic identifiers can only contain alphanumeric \
characters or the _ (underscore character)\n"
2 "Symbolic identifiers cannot be more than 65 \
characters long\n"
5 "You can mix symbolic identifiers and numbers\n"
$quote
6 remember to include the "msg_h" file in your program因为源文件包含一个特定的编号,所以指定的消息号是不连续的。 mkcatdefs 程序始终指定将原来的编号加 1 为符号标识。
注:mkcatdefs 命令在输出消息源文件中 $set 命令之前插入 $delset 命令。 这意味着当输出到 gencat 命令时,不能在现有的目录中添加、删除或替换单条消息。 必须在集合中输入所有的消息。
文件
| 项 | 描述 |
|---|---|
| /usr/bin/mkcatdefs | 包含 mkcatdefs 命令。 |