MMAP2
Section: Linux Programmer's Manual (2)
Updated: 2007-07-08
Index
JM Home Page
roff page
名前
mmap2 - ファイルやデバイスをメモリにマップする
書式
#include <sys/mman.h>
void *mmap2(void *start, size_t length, int prot,
int flags, int fd, off_t pgoffset);
説明
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))
を起動する。
ia64 では、
offset
の単位は、実際にはシステムのページサイズであり、
4096 バイトではない。
関連項目
getpagesize(2),
mmap(2),
mremap(2),
msync(2),
shm_open(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:53 GMT, November 19, 2007