ホームページ  >  記事  >  コンピューターのチュートリアル  >  Linux ファイルマッピングを表示するにはどのような方法がありますか?

Linux ファイルマッピングを表示するにはどのような方法がありますか?

PHPz
PHPz転載
2024-02-19 17:24:031153ブラウズ

1. ファイルマッピングの定義

ファイル マッピングは、ディスク上のファイルをプロセスの仮想メモリ空​​間にマッピングするメカニズムです。

このようにして、プロセスは、読み取りや書き込みなどの通常のシステム コールを経由することなく、メモリ アドレスを通じて直接ファイルの読み取りと書き込みを行うことができます。

ファイル マッピングでは、Linux メカニズムを通じてファイルをプロセスの仮想メモリに接続します。これにより、プロセスはディスクに直接アクセスせずに、メモリ内のファイル データを直接読み書きできます。このメカニズムにより、より効率的なファイル アクセス方法が提供され、ファイル操作プロセスも簡素化されます。

ファイル マッピングはメモリ マッピングと呼ばれることが多く、この 2 つは通常同じものです。メモリ マッピングには、ファイルをメモリにマッピングする操作と、匿名メモリをプロセス アドレス空間にマッピングする操作が含まれます。

ファイル マッピングはメモリ マッピングの特殊なケースです。

2. ファイルマッピングを表示する方法 [2 つの方法]

方法 1: pmap ツールを使用する

対応するプロセスのファイルマッピング情報を表示します

リーリー
  • 各行はメモリ マップ領域を表します。
  • アドレス範囲、権限、マッピング タイプ、ファイル パス、その他の情報。
  • 「mapped」はマップの合計サイズを表し、「writeable/private」は書き込み可能およびプライベートのサイズを表し、「shared」は共有サイズを表します。

方法 2: cat を使用してファイル マッピング ファイルを表示する

cat /proc/PID/maps コマンドを使用して、プロセスのメモリ マッピングを表示します。

各行はメモリ マップ領域を表し、形式は次のとおりです。

リーリー

    address: マップされた仮想メモリのアドレス範囲。
  • perms: 読み取り (r)、書き込み (w)、実行 (x) などの権限。
  • offset: ファイル内のマップされた領域のオフセット。
  • dev: デバイス番号。
  • inode: ファイル システム内のファイルのノード番号。
  • pathname: マップされたファイル パスまたは匿名マッピング。

3. Linux でのファイル マッピングの使用方法

ここでは、ファイル マッピングを使用してファイルをメモリにマップし、メモリ内の内容を変更し、最後にメモリのマッピングを解除する方法を例を通して示します。

Linux ファイルマッピングを表示するにはどのような方法がありますか?

example.c ファイル

リーリー

コンパイルと実行:

リーリー

プロセスのファイル マッピング情報を表示します:

リーリー

ここで

ctrl C を押してサンプル プログラムを終了し、example.txt ファイルの内容を表示します。 リーリー

以上がLinux ファイルマッピングを表示するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はmryunwei.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。