CatはopenSuse Tumbleweedのファイルにアクセスできません(「無効なパラメータ」エラー)。

CatはopenSuse Tumbleweedのファイルにアクセスできません(「無効なパラメータ」エラー)。

最近のバージョンのopenSuse Tumbleweedをインストールし、それに慣れるためにファイルシステムを検索していたところ、/ dev / lightnvmで "control"というファイルを見つけました。catfile() で実行しようとしましたが、これを行うとcat control次のエラーが発生します。

cat: control: Invalid argument

ファイルにアクセスするには、適切な権限が必要です。 「制御」ファイルの内容を表示できない理由についてのアイデアはありますか?

答え1

c最初の列の出力は、lsこれが文字であることを示します。デバイスファイル。これは通常のファイルではなく、実際の「コンテンツ」はありません。

通常のファイルを開いて読み取ると、カーネルは標準コードを実行してハードドライブ(または同様のストレージ)からファイルデータを取得します。ただし、デバイスファイルにアクセスすると、カーネルはそのデバイス(「デバイスドライバ」)に固有のコードを実行します。明らかに、lightnvmデバイスドライバの作成者は、特定のデバイスからデータを読み取ることが意味がないようにコードを設計したので、コードでそれをしようとするとエラーが発生する必要があると言います。

(おそらくこのデバイスを使用する必要があるコードはこのファイルに書き込む必要があります。名前が示すように、デバイスにコマンドを送信するにはcontrolこのファイルに書き込む必要があります。読み書きはできませんが、以下で使用する場合もあります。ioctl()システムコールアクセス。 )

/devあなたが何をしているのか本当に知らない限り、「ファイル」に触れるのは一般的に良い考えではありません。任意のデバイスファイルに書き込むことは非常に危険です。たとえば、echo hello >/dev/sdaシステムを起動できないようにし、ファイルを回復するのを難しくすることができます。場合によっては、デバイスファイルを読み取ることも危険にさらされる可能性があり、少なくとも予期しない動作につながる可能性があります。

関連情報