私はシステムコールを使ってディレクトリの内容を表示しようとしています。私はvfs_readdirの指摘を指摘してきましたが、ディレクトリの内容を取得するために、その使用法やそれを渡すための手がかりがありません。私がしたいのは、lsの動作と同様のディレクトリにあるファイルをリストすることだけです。 (私は最終的にこれを何らかのバッファーに格納しようとしていますが、今のところdirの内容を印刷するだけで十分でしょう)。Linuxカーネルでvfs_readdirはどのように使用しますか?
0
A
答えて
0
おそらくfilp_openを使用してディレクトリを開く必要があると思います。 http://lxr.linux.no/#linux+v3.1.5/fs/open.c#L876 filp_openするフラグを提供する:
「フラグ」引数には、あなたがproablyに記載されているLOOKUP_フラグのいくつかの組み合わせを配置する必要がありあなたがここに何をするかbuild_open_flags見ることができます/ Linuxの/ namei.h
が含まれます。
私が知る限り、filp_openは、カーネルスペースでファイルを開く正しい方法です。しかし、そうすることはお勧めしません。
あなたがユーザープロセスに属している「通常の」スレッドのコンテキストからそうしていれば、あなたは大丈夫だと思います。
関連する問題
- 1. __ATTRマクロはLinuxカーネルでどのように使用されますか?
- 2. Linuxカーネルはどのようにスタックサイズ制限を実施していますか?
- 3. Linuxカーネルはvga =パラメータをどのように解析しますか?
- 4. U-BootはLinuxカーネルとどのように通信しますか?
- 5. Linuxカーネルでpercpuポインタはどのように実装されていますか?
- 6. DockerはmacOSホストでLinuxカーネルをどのように動作させますか?
- 7. pthreadはLinuxカーネル3.2でどのように実装されていますか?
- 8. linuxカーネルのシステムコールテーブルはどこですか?
- 9. LinuxでSCHED_DEADLINEをどのように使用しますか?
- 10. どのようにLinux用のデバッガを使用しますか
- 11. Android O(8.0)のLinuxカーネルはどのバージョンを使用していますか?
- 12. Linuxカーネルはどのタイプのメモリモデル(フラット/セグメンテーション)を使用していますか?
- 13. ディストリビューションで使用されているLinuxカーネルのバージョンを知るにはどうすればよいですか?
- 14. linuxカーネルがアンドロイドランタイムとライブラリとどのようにインターフェースしますか?
- 15. プロセスがshm_open()を使用するとき、Linuxカーネルはどのようにメモリポインタを割り当てますか?
- 16. LinuxカーネルにどのようにIPアドレスが通知されますか?
- 17. Linuxカーネルは別のLinuxカーネルを読み込んで実行できますか?
- 18. Linuxカーネルでのfor_each_processマクロの使用
- 19. linuxカーネルでのpwm_get()の使用例
- 20. Linuxカーネルでは
- 21. Linuxカーネルはブート時にどのドライバをロードするのかをどのように知っていますか?
- 22. どのLinux OSにLinuxカーネル2.6.32
- 23. Linuxのカーネル空間からioctl()を使用するには?
- 24. LinuxカーネルのARPソースコードはどこにありますか?
- 25. Linuxカーネルから標準ライブラリ呼び出しを行うにはどうすればよいですか?
- 26. NOHZ = OnがLinuxカーネルのdo_timerにどのように影響するか
- 27. Androidエミュレータ用のカーネルはどのように構築できますか?
- 28. Armel Linuxカーネルはどのようにarmhf rootfsで起動することができますか?
- 29. Linux:ゲストVMのカーネルがどのように時間を維持するか
- 30. Linuxカーネル:プロセスページテーブルはどこにありますか?
カーネルレベルのコードを書いていますか? –
はい。自分のシステムコールを書く。 – NuGy