Manpages

名 前

posix_fallocate − フ ァ イ ル の ス ペ ー ス を 確 保 す る

書 式

#include <fcntl.h>

int posix_fallocate(int fd, off_t offset, off_t len);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

posix_fallocate():

_XOPEN_SOURCE >= 600 || _POSIX_C_SOURCE >= 200112L

説 明

関 数 posix_fallocate() は 、 デ ィ ス ク リ プ タ ー fd で 参 照 さ れ る フ ァ イ ル に 対 し て 、 デ ィ ス ク ス ペ ー ス を 確 実 に 確 保 す る 。 デ ィ ス ク ス ペ ー ス は offset か ら 始 ま る len バ イ ト の 範 囲 の バ イ ト で あ る 。 posix_fallocate() の 呼 び 出 し が 成 功 し た 後 、 指 定 さ れ た 範 囲 の バ イ ト に 対 す る 書 き 込 み は 、 デ ィ ス ク ス ペ ー ス の 不 足 で 失 敗 し な い こ と が 保 証 さ れ る 。 フ ァ イ ル の サ イ ズ が offset+len よ り 小 さ い 場 合 、 フ ァ イ ル は こ の サ イ ズ に な る よ う に 拡 大 さ れ る 。 そ れ 以 外 の 場 合 、 フ ァ イ ル サ イ ズ は 変 わ ら な い 。

返 り 値

posix_fallocate() は 成 功 し た 場 合 、 0 を 返 す 。 失 敗 し た 場 合 、 エ ラ ー 番 号 を 返 す 。 errno が 設 定 さ れ な い 点 に 注 意 す る こ と 。

エ ラ ー

EBADF

fd が 有 効 な フ ァ イ ル デ ィ ス ク リ プ タ ー で な い か 、 書 き 込 み 用 と し て オ ー プ ン さ れ て い な い 。

EFBIG

offset+len が 最 大 フ ァ イ ル サ イ ズ を 超 え て い る 。

EINVAL

offset が 0 未 満 だ っ た か 、 len が 0 以 下 だ っ た 。

ENODEV

fd が 通 常 の フ ァ イ ル と し て 参 照 さ れ て い な い 。

ENOSPC

fd が 参 照 す る フ ァ イ ル を 含 む デ バ イ ス に 十 分 な 空 き 領 域 が な い 。

ESPIPE

fd が パ イ プ を 参 照 し て い る 。

バ ー ジ ョ ン

posix_fallocate() は glibc 2.1.94 以 降 で 利 用 可 能 で あ る 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )

posix_fallocate() 関 数 は ス レ ッ ド セ ー フ で あ る 。

準 拠

POSIX.1−2001.

POSIX.1−2008 で は 、 len が 0 の 場 合 、 も し く は offset が 0 未 満 の 場 合 、 EINVAL エ ラ ー を 返 す も の と さ れ て い る 。 POSIX.1−2001 で は 、 len が 0 未 満 の 場 合 、 も し く は offset が 0 未 満 の 場 合 、 EINVAL エ ラ ー を 返 す も の と さ れ て い る 。 ま た 、 len が 0 の 場 合 、 EINVAL エ ラ ー を 返 し て も よ い と さ れ て い る 。

注 意

glibc の 実 装 で は 、 posix_fallocate() は fallocate() を 使 っ て 実 装 さ れ て い る 。

関 連 項 目

fallocate(1), fallocate(2), lseek(2), posix_fadvise(2)

こ の 文 書 に つ い て

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