デバイスファイルの実際のサイズを検出して取得する方法は?

デバイスファイルの実際のサイズを検出して取得する方法は?

特殊/デバイスファイルの場合、Cfsize関数は4096を返しますが、デバイスファイルの実際のサイズ(有限の場合)を知るための統合関数はありますか?
ファイルが一般的なファイルなのか、デバイスのファイルなのかを知る方法があるのか​​も知りたいです。

ありがとうございます!

答え1

あなたの質問は依然としてかなり不特定で広範囲であり、不特定の質問のために役立つかもしれないし、そうでないかもしれない不特定の答えを得るでしょう。それでも、正しい方向を指そうとしています。

ファイルが一般的なファイルなのか、デバイスのファイルなのかを知る方法があるのか​​も知りたいです。

確かに。最も一般的な出力は次のとおりですls -l

$ ls -l /dev
total 0
crw-rw----+ 1 root   audio      14,   4 Jan  5 00:44 audio
crw-------  1 root   root       10, 235 Jan  5 00:44 autofs
drwxr-xr-x  2 root   root           480 Jan 17 01:20 block
drwxr-xr-x  2 root   root           140 Jan 17 01:20 bsg
drwxr-xr-x  3 root   root            60 Jan  5 00:44 bus
lrwxrwxrwx  1 root   root             3 Jan 17 22:14 cdrom -> sr0
[...]

各入力行の最初の文字はファイル形式を表示します。有効な形式のリストは、以下にあります。ls手動

の項目について問い合わせるとき、/dev目次とリンクに加えて、最も一般的なタイプは次のとおりです。キャラクターデバイスそしてブロックデバイス

デバイスファイルの実際のサイズを知るための統合機能はありますか?

すでに指摘したように、「実際のサイズ」とはデバイス「で」利用可能なサイズを意味し、その中にある特殊ファイルは/devそのファイルにアクセスできるシステムを表すだけです。

「寸法の入手方法」に対する答えは「内容によって異なります」です。たとえば、ディスクパーティション(ブロックデバイス)の場合は、通常マウントして次のコマンドを使用してサイズ(合計スペース、占有スペース、空きスペース)を取得できます。df。一方、すべてのブロックデバイスを装着できるわけではありません。

あなたが達成したいことが正確に何であるかを知らなくても、これがこれまでに得ることができるすべてです。今考えてウェブを検索することはあなた次第です(すべてがそこにあります)。自分で理解できない場合は、新しい質問を作成できます。

関連情報