MMAP2

Section: Linux Programmer's Manual (2)
Updated: 2017-09-15
Index JM Home Page
 

名前

mmap2 - ファイルやデバイスをメモリーにマップする  

書式

#include <sys/mman.h>

void *mmap2(void *addr, size_t length, int prot,
            int flags, int fd, off_t pgoffset);
 

説明

これはおそらくあなたが興味のあるシステムコールではないだろう。代わりに mmap(2) を見るとよい。そのページにはこのシステムコールを起動する glibc の ラッパー関数についての説明がある。

mmap2() システムコールは mmap(2) と同じインターフェースを提供する。ただ し、最後の引数には、ファイルのオフセットを (mmap(2) が行っている、バイト 単位ではなく) 4096 バイトを単位として指定する。 これにより、32 ビットの off_t を使うアプリケーションで (2^44 バイトまでの) 大きなファイルをマップ できるようになる。  

返り値

成功した場合、 mmap2() はマップされた領域へのポインターを返す。 エラーの場合は -1 が返されて、 errno が適切に設定される。  

エラー

EFAULT
ユーザー空間からデータを取得するときに問題があった。
EINVAL
(ページサイズが 4096 バイトでないプラットフォームにおいて) offset * 4096 がシステムのページサイズの倍数ではない。

mmap2() は mmap(2) に載っているエラーを返すこともある。  

バージョン

mmap2() は、Linux 2.3.31 以降で使用可能である。  

準拠

このシステムコールは Linux 独自である。  

注意

このシステムコールが存在するアーキテクチャーでは、glibc の mmap() のラッパー関数は、 mmap(2) システムコールではなく、このシステムコール (mmap2(2)) を起動する。

このシステムコールは x86-64 には存在しない。

ia64 では、 offset の単位は、実際にはシステムのページサイズであり、 4096 バイトではない。  

関連項目

getpagesize(2), mmap(2), mremap(2), msync(2), shm_open(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

バイト   マップ   単位   mmap   起動   ラッパー   デバイス   メモリー   mman   size   興味   インターフェース   提供   最後   オフセット   ビット   アプリケーション   成功   領域   ポインター   空間   問題   プラットフォーム   倍数   アーキテクチャー

Linux マニュアル 一覧

関連するコマンド・関数

cmp.1   strpbrk.3   fwide.3   mincore.2   ypmatch.1   ypwhich.1
 

Index

名前
書式
説明
返り値
エラー
バージョン
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:59 GMT, October 11, 2026