ファイルとは何ですか? すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると、有効な情報を取得できます。ファイル操作を容易にするために、人々は異なるファイル解析方法に応じてファイルに異なるタイプを与え、次のように人々にわかるようにマークを付けてきました。 今日、/dev/fuse ファイルのプロパティを確認していたところ、crw_ 権限ビットを見つけて、しばらく混乱しました。 [root@localhost ~]# ll /dev/fuse crw-rw-rw-。1 ルート ルート 10、229 9月 20 11:12 /dev/fuse ここで注意すべき点は、関連する回答はインターネットから得られるということです。 Linux では、c は文字デバイス ファイル、b はブロック デバイス ファイル、l はシンボリック リンク ファイル、r は読み取り権限、w は書き込み権限を表します。 Linux ファイル属性の解釈: ファイルタイプ: -: 通常のファイル(f) Linuxのファイルタイプを見てみましょう (1)通常ファイル('-'、通常ファイル) バイナリファイルとテキストファイルに分かれています バイナリファイルは、.bin、.elfファイルなどのマシンが見るためのものです。 テキスト ファイル: 人間が表示する場合、通常は ASCII エンコードで、ASCII エンコードを使用して解析する必要があります (例: .txt、.c ファイル)。 (2)フォルダファイル('d'、ディレクトリファイル) ライブラリ関数を使用して開く必要があるという点で特別なファイルです。 (3)リンクファイル('l'、リンクファイル) ここにソフトリンクファイルがあります。 注: ソフト リンク ファイルとハード リンク ファイルの違い。 ソフト リンク ファイル自体は独立したファイルであり、独自の inode を持ちます。 ハードリンク ファイルは独立したファイルではありません。リンクされたファイルと同じ inode を共有します。 (4) パイプラインファイル ('p'、パイプラインファイル) プロセス通信に使用されます。 (5)ソケットファイル('s'、ソケットファイル) ネットワーク用。 (6)キャラクタデバイスファイル('c'、キャラクタファイル) ハードディスク上には存在せず、fs によって作成されるため、仮想ファイルとなります。 直接読み書きすることはできません。API を使用する必要があります。 (7) ブロックデバイスファイル('b'、ブロックファイル) これは fd 用に作成された仮想ファイルでもあり、API を使用して読み取りおよび書き込みを行う必要があります。 3. ファイルのプロパティを取得するにはどうすればよいですか? (1)シェルでstatコマンドを使用する (2)プログラム内でのstat APIの使用 4. ファイルの権限 (1)ファイルの権限を取得するには? プログラムで stat API を使用すると、st_mode 要素を取得できます。st_mode はビットベースのコンテンツ レコードなので、対応するビットを & するだけで済みます。Linux では対応するマクロが提供されており、これを使用できます。 (2)プログラムがファイルにアクセスする権限を持っているかどうかをどのように判断するか? まず、プログラムのファイル権限は、プログラムを実行するユーザーによって決定されます。ユーザーが権限を持っている場合、プログラムには権限があります。ユーザーが権限を持っていない場合、プログラムには権限がありません。次に、プログラムはアクセス API を使用する権限があるかどうかを判断します。最後に、優れたプログラムは、実行の開始時に操作対象のファイルの権限を最初に判断する必要があります。ユーザーが権限を持っていない場合は、ユーザーに通知する必要があります。 (3)権限を変更するには? シェルにはchmodコマンドがあり、chmod APIもあるので、このAPIを使うことができます。 (4)新しく作成されたファイルの権限はどのように決定されますか? Linux には umask と呼ばれる変数に似たものがあり、新しいファイルの権限は umask によって決定されます。 umask はシェル内で変更できます。 要約する 上記は、Linux の crw、brw、lrw などのファイル属性についてご紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: vue3 を使用したジグソーパズルゲームのリファクタリングの例
>>: mysql5.7.17 zip の解凍とインストールの詳細な手順
1. 関連ツールと画像をダウンロードするダウンロードリンクバーチャルボックス: https://do...
目次序文文章1. 終了1.1 クロージャとは何ですか? 1.2 クロージャの特性1.3 クロージャを...
目次簡単な説明: 1. 取引の4つの特徴2. 複数の同時トランザクションによって発生する問題3. ト...
目次1. はじめに2. ポイントフィーチャーレイヤーの集約3. 重合の特殊処理4. 重合の特殊処理 ...
通常、コンポーネントのライフサイクルは、ビジネス ロジックが始まる場所です。ビジネスシナリオが複雑で...
疫病のせいで家にこもりきりで、頭がおかしくなりそうなので、パソコンを起動して頭を働かせてみました。今...
目次font-faceでフォントを正しく宣言するフォントをプリロードするフォントをホストするにはli...
Docker には 3 つの基本概念が含まれています。イメージ: Docker イメージはルート フ...
データベースの移行は、よく遭遇する問題です。データ量が少ない場合、移行は基本的に問題になりません。実...
多くの人が MySQL の起動時にこのエラーに遭遇しています。まず、このエラーの前提は、サービス ス...
序文基本的なデータ構造として、配列とオブジェクトはさまざまなプログラミング言語で重要な役割を果たしま...
目次React Fiberとは何ですか?なぜReact Fiberなのか? React Fiberは...
この記事では、3階層ナビゲーションの表示と非表示を実現するためのVueの具体的なコードを例として紹介...
Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...
CSS の 2D 変換を使用すると、移動、回転、拡大縮小、変形などの基本的な変換操作を 2 次元空間...