2017-12-26 40 views
0

でファイルシステムの作成日を取得など、私はシェルコマンドを使用して避けたいC.で(Linuxマシンで)ディスク上のファイルシステムの作成日時を知っておく必要がありますC

tune2fs -l /dev/sdb2 | grep 'Filesystem created:' 

とパーサーを作る。

おかげCでコーディングされたプログラムから

+0

私はファイルシステムの作成日時を探しています(あなたの質問には、いくつかの動機や背景を与える必要があります)。ファイルの作成日時は簡単に編集できます。 – Rockietto

+1

tune2fsはext2/ext3/ext4をサポートしていますのでextファイルシステムの作成日時を知りたいのですか? – xdebug

+0

はい。私のハードディスクはext4です。 – Rockietto

答えて

1

(またはCルーチンを呼び出すことができる任意の言語で)あなたはstat(2)システムコール(または、最近カーネルと一部ファイルシステムで、statx(2)を使用します1)与えられたファイル(またはディレクトリ)の作成時間を問い合わせます。もちろん、ls(1)またはstat(1)のようなコマンドは、そのstat(2)システムコールを内部的に使用しています。

標準はなく、ファイルシステムには中立的な意味があり、与えられたファイルの作成時間はfile systemです。その情報は常に保持されているわけではありません。私はFATファイルシステム、またはNFSのようなdistributed file systemsは、それを保持しないと思います。

stat(2)をそのファイルシステムのマウントポイントに使用することができます。

statfs(2)システムコールは、ファイルシステム情報を取得しますが、タイムスタンプは与えません。

ext4ファイルシステムについては、ext4(5)を参照し、proc(5)を使用してください。 /proc/mounts/proc/fs/ext4/*/ディレクトリを解析するかもしれません。 /proc/の疑似ファイルはparsed quicklyであり、通常は物理ディスクIOには関係しません。

またe2fsprogs(からまたはプログラム)などのライブラリと、アンマウントファイルext[234]システム上で、EXT2/3/4 disk partitionレベルで仕事ができます。ファイルシステムがマウントされている場合は、ファイルシステムを含むディスクパーティションにはアクセスしないでください。

+0

ご返信ありがとうございます。私はあなたのサンプルをチェックします。 – Rockietto

関連する問題