AIX命令参考大全,卷 5,s - u - unifdef 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 5,s - u

unifdef 命令

用途

从文件中除去 ifdef 行。

语法

unifdef-t ] [  -l ] [  -c ] [  -DSymbol ] [  -USymbol ] [  -idSymbol ] [  -iuSymbol ] [  File ]

描述

unifdef 命令用于除去文件中的 ifdef 行,而不会进行别的操作。为了正确运行,unifdef 命令认出嵌套的 ifdefs、注释、C 语言语法的单引号和双引号,但不包括文件或不解释宏。unifdef 命令认出但并不除去注释。

如果没有指定 Fileunifdef 命令从标准输入得到输入,并复制输出到标准输出。

一旦指定 Symbol,ifdef 中的行最终被复制到输出或除去。与符号关联的 ifdef、ifndef、else、elif 和 endif 行也要除去。涉及未指定的 Ifdef 不会更改并和相关 ifdef、else、elif 和 endif 行一起拷出。如果相同符号在一个以上的自变量里出现,仅第一个出现的有意义。例如,如果 ifdef X 嵌套在另一个 ifdef X内, 内部的 ifdef 即被认为是无法识别的符号。

当使用 ifdef 定界非 C 语言行,如注释或未完成的代码时,有必要指定为此目的使用哪些符号。否则,unifdef 命令将试图分析 ifdef 行的引用和注释。

unifdef 命令不能处理 cpp 构造,例如:

#if defined(X) || defined(Y)

或者

#elif X

或者

#elif defined(X) || defined(Y)

关键字

unifdef 命令识别以下关键字:

标志

-c 补充unifdef 命令的操作。 即保留被除去的行,反之亦然。
-D Symbol 指定定义的符号。
File 指定输入源。
-id Symbol unifdef 命令不会试图识别指定的 ifdef 内的注释、单引号或双引号,但这些行将被拷出。
-iu Symbol unifdef 命令不会试图识别指定的 ifdef 内的注释、单引号或双引号。这些行不会拷出。
-l 用空行替换除去的行,而不是将其删除。
-t 允许 unifdef 命令用于纯文本(不是 C 语言代码): unifdef 命令不会试图识别注释、单引号和双引号。
-U Symbol 指定要取消定义的符号。

退出状态

该命令返回以下退出值:

0 输出为输入的精确副本。
1 输出不是输入的精确副本。
2 命令因为 EOF 过早发生、不相称的elseelifendif而失败。

示例

  1. 示例如下:

    unifdef -DA original.c > modified.c

    使 unifdef 命令阅读original.c文件,并除去 #ifdef A 行。然后除去与 #ifdef A 相关的在 #elif/#else 后的所有行,一直到 #endif。输出放在 modified.c 文件中。

  2. 示例如下:

    unifdef -UA original.c > modified.c

    使 unifdef 命令读 original.c文件,并 除去 #ifdef A,一直到其与其关联的 #elif//#else 或 #endif。对于 #elif,#elif 由 #if替换。对于 #else, #else 同与其相关的 #endif 一同删除。 输出放在 modified.c 文件中。

文件

/usr/bin/unifdef 包含unifdef命令。

相关信息

cpp 命令。

《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『命令概述』

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]