2

FUSE を使用してファイル システムを実装したいと考えています。ディレクトリの内容が要求されると、そのディレクトリ内のファイルの種類のみがサブディレクトリとして報告されます。たとえば、ディレクトリに ugur.PDF、guler.JPG、および devatate.PNG ファイルがある場合、ファイル自体は報告されませんが、代わりにタイプ (PDF、JPG、および PNG) が報告されます。このファイルシステムを実装しようとしました。私の問題は、ls-l コマンドを変更せずにどのように報告できるか想像できないことです。ls-l コマンドはどのように機能しますか? (readdir関数があり、file_typeとfile_nameをバッファにロードします。変更しようとしましたが、達成できませんでした)

4

2 に答える 2

5

どのように機能しls -lますか?それが問題の核心であると思われる。を呼び出しますfstat(2)。そのシステム コールがstat構造体を埋めます。ヒューズ プロバイダーを実装すると、最終的に stat 構造体になるデータが提供されます。ディレクトリ構造を変更したい場合は、さまざまなアイテムに必要な偽造された情報を返します。

于 2009-12-27T03:23:31.153 に答える
0

これには 2 つのアプローチが考えられます。 1. SQLite のようなデータベースを使用して、データベースにファイル、パス、およびファイルの種類を格納できます。次に、ユーザーがディレクトリに入ると、 select file_types where path="" のようなクエリを実行し、filler() を使用してディレクトリとして入力すると言うことができます。 、次にfiller()を使用してそれらをディレクトリとして投稿します。次に、ユーザーがいずれかのディレクトリに入ると、cur_path が last_path (元のディレクトリ) にあるかどうかを確認するためのチェックなどを再度行うことができ、それらのファイルの種類を選択して表示することができます。

于 2012-09-25T04:35:38.880 に答える