ファイルがシステムコールにマッピングされている:ファイルのどのバイトがマップされたままですか?
mmap(65536, 32768, READ, FLAGS, fd, 0)
ページ8キロバイト、そうファイルの価値は4ページをマッピングした(32768/8K = 4ページ)です。次に、次の呼び出しが実行されます。
munmap(65536, 8192)
メモリマップの指定された部分を削除します。ファイルのどのバイトがマップされたままですか?答えキーは、ページ2とページ3が残っているので、バイト16384〜32767だけが残ります。しかし、私はこれが正しいとは確信していません。 munmap
コマンドのlen
引数(2番目の引数)は8192バイトであるため、8192バイトから32767バイトのまま、ページ0だけを削除する必要はありませんか?
あなたのロジックは私にとって正しいようです。 'munmap'のサイズが' '8193 ''だったら彼らの答えは正しいでしょう。 – Barmar
@duskwuff http://pubs.opengroup.org/onlinepubs/009695399/functions/munmap.htmlによると、 'addr'はページサイズの倍数でなければなりませんが、' len'について何も言わないのです。 – Barmar
@Barmar私の間違い。ドキュメントを誤解します。 – duskwuff