2

メイクファイルの行に出くわしました。行は次のとおりです。

-include $(wildcard makefile.mk) /dev/null

インクルード行の /dev/null の目的がわかりません。意図的ですか、それとも間違いですか?おそらく彼らは出力をそこに送るつもりでしたか?私はまだmakefileに慣れていません。誰かがこれを理解するのを手伝ってくれますか?

4

2 に答える 2

2

includeワイルドカードがまったく展開されない場合でも、少なくとも 1 つのファイル (/dev/null ) が生成されるようにするために使用されていると思います。多分私はそれをこのように説明することができます...あなたがこのような架空の編集物を持っていたと想像してください

INCLUDES=$(wildcard /usr/inc*)
CC -I INCLUDES prog.c -o prog

(確かに奇妙な) 環境の /usr/include に何もない場合、コンパイル コマンドは次のように展開されます。

CC -I prog.c -o prog

エラーが発生する可能性があります。したがって、/dev/null追加によりそれが回避される可能性があります。

私はそれが必要だと言っているのではありません。プログラマーが使用する場合に似ています

grep pattern file /dev/null

現代的なものではなく

grep -H pattern file

これは確実に存在するファイルであるため、grep引数として 2 つのファイルを受け取り、パターンが見つかったファイルの名前を、指定した場合とまったく同じように通知します-H

もう 1 つの例は、formatSolaris のコマンドです。接続されているすべてのディスクの素敵なリストが表示されますが、いずれかを選択するまでそこにぶら下がったままになります。これは、スクリプトからリストを解析したい場合には理想的ではありません. ここでも /dev/null を使用できます。ディスクが一覧表示され、終了すると終了します。

format < /dev/null
于 2014-08-09T07:02:12.263 に答える
0

まったく必要ありません。includeファイル名が指定されていない場合は何もしません。

于 2014-07-01T20:52:21.447 に答える