2012-02-24 7 views
0

新しいファイル(たとえば、touch.txt)を作成すると、ファイルのサイズは0Bになります。 私はその情報(サイズ、最終更新日、所有者名、ファイル名)がどこに保存されているのか疑問に思っています。 これらの情報はhdに保存され、カーネルで管理されていますが、私はそれらについてもっと知りたいと思っています: プログラミング言語をC言語で使用する方法と方法それらを変更する可能性があります。 これらの情報は、単にプログラミング言語を使用して変更できますか、またはカーネルがこの操作を回避するのでしょうか?UNIXベースのファイルシステムに関するファイル情報

私はUnixベースのファイルシステムに取り組んでおり、特にこのfsに関する情報を求めています。

+1

これらの操作のための低レベルの機能を見つけるでしょう – accfews

答えて

2

この情報は、stat()機能(およびそのファミリの他の機能)を使用して取得できます。特定のファイルシステムまで格納されていて、明白な理由がある場合は、ドライブに未処理のアクセス権がなければ変更できません。ドライブ上のすべてのものを失っても問題がなければ、避けてください。

+0

私はカーネルが "サイズ"のような値を変更するのではなく、ドライブから読むことを制限していないことを理解します。これは明らかかもしれませんが、私は自分の考えに確かめたいと思っていました。答えをありがとう、良い一日を。 – joker

3

UNIXシステムでは、彼らは伝統的にファイル表現のメタデータ部に格納されているあなたは、あなたが所有者とパーミッションを変更することができ、theseフィールドを参照してください、stat()呼び出しで、この情報を取得することができますinode

と呼ばれますchown()とchmod()

+0

ありがとう、あなたの答えは明確で、私に理解させてください。 – joker

0

例えば所有者、サイズ、日付などのメタデータは、通常、ファイルシステムのスーパーブロックに存在index-node(iノード)と呼ばれる構造に格納されています。

関連する問題