Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

unifdef(1)

名前

unifdef - C プログラムソースの ifdef された行の解決および削除

形式

unifdef [-clt] [-Dname] [-Uname] [-iDname] [-iUname] ... 
     [filename]

説明

unifdef は、ifdef された行があればファイルから削除し、なければそのファイルをそのままにします。これは、C 構文の入れ子になった ifdef、コメント、単一および二重の引用符を処理するのに十分な性能がありますが、マクロを含めたり、解釈したりすることはありません。また、コメントを認識して無視しますが、それを取り除くこともありません。–D オプションで定義したいシンボルを指定し、–U オプションで未定義にしたいシンボルを指定します。これらの ifdef 内部の行は、必要に応じて出力にコピーされるか、削除されます。filename に関連付けられているすべての ifdefifndefelse、および endif 行も削除されます。

指定しないシンボルを含む ifdef は変更されず、それに関連付けられた ifdefelse、および endif 行とともにコピー出力されます。

ifdefX が別の ifdefX 内部で入れ子で出現する場合、内部の ifdef は認識できないシンボルであるかのように扱われます。同じシンボルが複数の引数内に出現する場合は、最初のものだけが有効です。

filename 引数が指定されていない場合、unifdef はその出力を標準出力にコピーし、標準入力から入力を受け取ります。

オプション

サポートしているオプションは、次のとおりです。

–c

通常の操作を補完します。削除される、または空白にされる行が保持されます。逆の場合も同様です。

–l

「lines removed」行を空白行に置き換えます。

–t

標準テキストオプション。unifdef は、コメント、単一引用符、および二重引用符の認識を試みません。

–Dname

定義済みシンボルの name に関係付けられた行。

–Uname

未定義シンボルの name に関連付けられた行。

–iDname

定義済みシンボルの name に関連付けられた行を無視しますが、出力します。ifdef を使用して、コメントや作成中のコードなど C 言語以外の行を区切る場合、unifdef が内部の引用符やコメントの解析を試みることがないように、その目的で使用するシンボルを伝える必要があります。

–iUname

未定義シンボルの name に関連付けられた行を無視しますが、出力します。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

操作が失敗しました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
developer/base-developer-utilities

関連項目

diff(1), attributes(7)

診断

EOF が早すぎます

不適切な else または endif