GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan <linux/types.h> di program pengguna, atau <stdint.h> di kode modul driver...apa bedanya?

  1. Apakah menggunakan linux/*.h yang disertakan dalam kode ruang pengguna merupakan ide yang buruk?

Ya, biasanya. Situasi umumnya adalah Anda harus menggunakan header C-library (dalam hal ini, stdint.h dan teman), dan berinteraksi dengan pustaka C melalui tipe ruang pengguna tersebut, dan biarkan pustaka menangani percakapan dengan kernel melalui tipe kernel.

Anda tidak berada dalam situasi yang khas. Dalam kasus Anda, Anda menulis pustaka driver . Jadi, Anda harus menghadirkan antarmuka ke ruang pengguna menggunakan stdint.h , tetapi menggunakan linux/*.h header saat Anda berinteraksi dengan driver kernel Anda.

Jadi jawabannya tidak, dalam kasus Anda.

  1. Apakah penggunaan stdint.h dalam kode kernel-space merupakan ide yang buruk?

Pasti ya.

Lihat juga:http://lwn.net/Articles/113349/


Linux
  1. Cara Instal phpMyAdmin di Linux menggunakan Source Code

  2. Cara membuat Pengguna Linux Menggunakan Ansible

  3. Dapatkah Anda membuatnya? Kompilasi Program C di Linux Menggunakan Make Command

  1. Apa arti __init dalam kode kernel Linux?

  2. Bagaimana cara membuat kode modul kernel Linux?

  3. Cara yang tepat untuk mendapatkan grup pengguna di linux menggunakan C

  1. Apa itu pengguna Linux?

  2. Cara men-debug program C di Linux menggunakan gdb

  3. Di Linux/Unix, apakah .tar.gz versus .zip penting?