create_proc_entry()を使用してprocエントリを作成するLKMモジュールがあります。ユーザー空間プログラムから複雑なデータ(私は構造を考えています)を送り、LKMが受け取れるように/ procエントリに格納しなければなりません。ユーザ空間からのprocエントリへの読み込み/書き込み
今、私は、ユーザー空間から/ procエントリへの書き込みのコールバックがバッファの形式でデータ引数を持っているため、fwrite()のようなものを使用してバッファリングされた出力に構造データを変換する方法に困惑しています。
// fwrite prototype
size_t fwrite (const void * ptr, size_t size, size_t count, FILE * stream);
// user space write to /proc entry call back prototype
int mod_write(struct file *filp, const char __user *buff,
unsigned long len, void *data);
お勧めはありますか?
ありがとうございました。
最も安全な賭けは、関連情報をテキストとして書き出すことです。エンディアンの問題を防ぎ、柔軟性を高め、デバッグをはるかに簡単にします。 –
@larsmans、エンディアンは正常なマシンでは問題ではありません。柔軟性は議論の余地があります。構造体メンバを追加するということは、テキストをテキストに/から書き込むことを意味するので、それほど柔軟性はありません。 – ugoren