1. ホーム
  2. c

[解決済み] sys/types.hはどこにありますか?

2022-02-12 09:59:43

質問

今知ったのですが <stdlib.h><stdio.h> ヘッダは /usr/include フォルダが見つかりません。 sys/types.h .

そして、コンパイラが実際にヘッダーファイルを使うのは /usr/include フォルダーに格納されます。

これは本当でしょうか、またそのファイルはどこにあるのでしょうか?

解決方法は?

私のDebianボックス(Ubuntuがそれを台無しにしていないことを祈ります。 の中に入っています。 /usr/include/sys/types.h .

最善の策は、まず実行することです。

find /usr/include -name types.h

をクリックすると

find / -name types.h

で見つからなかった場合は

ただし、開発物も、もしかしたら、そうでない可能性があることを頭に入れておいてください。 がインストールされています。 サーバーボックスはサーバーとして使用するためのもので、コンパイラやその他多くのものがデフォルトのインストールに含まれていなくても不思議ではない、と私はイメージしています(ただし、サーバー用のものには ftpd または Apache など)。

もし、コンパイラがどこかに位置を決めていて、どうしても場所がわからない場合は、次のようなものを使うことができます。

echo "#include <sys/types.h>" | gcc -E -x c - | grep /types.h

をクリックすると、どこから取得しているのかがわかります。

あるいは

echo "#include <stdio.h>" | gcc -E -x c - | grep /stdio.h

は、気になるもうひとつのヘッダーです。

<ブロッククオート

余談ですが。その gcc コマンドラインは前処理フェーズの後で停止します ( -E )、ファイルをCのソースコードとして扱うように強制する( -x c )、標準入力からプログラムを取得し ( - ) から、この場合は echo ステートメントを使用します。

最後の grep は、重要でない行を削除しているだけです。