Manpages

名 前

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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。