Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linux装置ファイルと通常ファイル

Linux装置ファイルと通常ファイル

  
        

ファイルはディスクに格納されているデータの一部だと多くの人が考えていますが、Linuxはより抽象的なアプローチを採用しています。デバイスをファイルに抽象化します。デバイスファイルは、通常のファイルと同じように、同じファイル名、別のiノード番号、ファイルの所有者、一連の許可ビット、および最新の修正時刻を持ちます。ファイルについて通常理解されているすべてのことは、端末と他のデバイスに適用されます。

通常のファイル、つまり一般的なディスクファイルはバイトで構成されており、ディスクファイルのバイト数がファイルサイズです。デバイスファイルはリンクであり、コンテナではありません。キーボードとマウスはクリックを保存しません:)デバイスファイルのiノードはファイルサイズと保存リストではなく、カーネルのサブルーチンへのポインタを保存します。カーネル内でデバイスデータを転送するサブルーチンは、デバイスドライバと呼ばれます。

ファイルタイプの違いは、iノードに反映されます。

ディスクファイルのiノードには、データブロックへのポインタのリストが含まれています。

デバイスファイルのiノードには、カーネルへのポインタが含まれます。デバイスドライバのポインタ

ディスク接続とデバイス接続

ディスクファイルへの接続には通常、バッファ付きディスク接続のプロパティであるカーネルバッファが含まれています。端末への接続が異なり、プロセスはできるだけ早くデータを転送する必要があります。

つまり、この2つの接続プロパティは異なります特定のファイルとデバイスの接続については、次のことを考えることができます。 2.現在の属性を検出する方法3.現在の属性を変更する方法

2と3の答えはシステムコールfcntlを使うことです。ファイル記述子の属性は整数ビットでエンコードされます。 Fcntlは、整数ビットを読み書きすることによってファイル記述子を制御します。

例:

#include< fcntl.h>

int s;

s = fcntl(fd、F_GETFL);

s

Copyright © Windowsの知識 All Rights Reserved