GNU/Linux >> Linux の 問題 >  >> Linux

ユーザー プログラムで <linux/types.h> を使用したり、ドライバー モジュール コードで <stdint.h> を使用したりすることは重要ですか?

<ブロック引用> <オール>
  • ユーザー空間コードで linux/*.h インクルードを使用するのは悪い考えですか?
  • はい、通常。典型的な状況では、C ライブラリ ヘッダーを使用する必要があります (この場合、stdint.h および友人)、およびそれらのユーザー空間型を介して C ライブラリとインターフェイスし、ライブラリがカーネル型を介してカーネルとの対話を処理できるようにします。

    しかし、あなたは典型的な状況ではありません。あなたのケースでは、ドライバー ライブラリを作成しています。 .したがって、 stdint.h を使用してユーザー空間へのインターフェースを提示する必要があります 、ただし linux/*.h を使用 カーネル ドライバーに接続するときのヘッダー。

    したがって、あなたの場合、答えはノーです。

    <ブロック引用> <オール>
  • カーネル空間のコードで stdint.h を使用するのは悪い考えですか?
  • 間違いなくそうです。

    参照:http://lwn.net/Articles/113349/


    Linux
    1. コマンドラインを使用してLinuxでユーザーを削除する方法

    2. POSIXとは何ですか? Linux / UNIXユーザーにとってなぜ重要なのですか?

    3. ソースコードを使用してLinuxにphpMyAdminをインストールする方法

    1. Ansibleを使用してLinuxユーザーを作成する方法

    2. Pythonを使用してLinuxでユーザーを作成する方法

    3. カーネル モジュール パラメータの変更 (/sys/module を使用)

    1. Linuxユーザーとは何ですか?

    2. gdbを使用してLinuxでCプログラムをデバッグする方法

    3. あなたはそれを作ることができますか? Make コマンドを使用して Linux で C プログラムをコンパイルする