名 前
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/ に 書 か れ て い る 。