kazmax - Linux で自宅サーバー

llseek - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 準拠
  7. 関連項目

名前

_llseek - ファイルの読み書きオフセットの位置を変える

書式

#include <unistd.h>

#include <sys/types.h>
#include <linux/unistd.h>
#include <errno.h>
_syscall5(int, _llseek, unsigned int, fd, unsigned long, hi," " unsigned long, lo, loff_t *, res, unsigned int, wh) /* Using syscall(2) may be preferable; see intro(2) */
int _llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t *result, unsigned int whence);

説明

_llseek ()関数は、ファイル・ディスクリプター (descriptor) fd に関連づけられたオープンされたファイルのオフセットの位置を、相対的に (offset_high<<32) | offset_low バイトだけ変更する。 基準となる位置を表す whence には SEEK_SET , SEEK_CUR , SEEK_END のいずれかを指定し、それぞれ ファイルの先頭、ファイルの現在位置、 ファイルの最後を表す。 結果のファイル位置を result 引き数に返す。

返り値

成功した場合は、 _llseek ()は 0 を返す。 そうでなれば -1 という値が返り、エラーを示す errno が設定される。

エラー

EBADF
fd がオープンされたファイル・ディスクリプターでない。
EFAULT
結果をユーザ空間にコピーするときに問題があった。
EINVAL
whence が不正である。

準拠

この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。

関連項目

  lseek (2),  lseek64 (3)