что означает `l` в` lseek` из unistd.h? - PullRequest
0 голосов
/ 12 ноября 2018

Я читаю APUE, чтобы изучить детали C и Unix, и встречаю lseek

NAME
lseek - move the read/write file offset
SYNOPSIS
#include <unistd.h>

off_t lseek(int fildes, off_t offset, int whence);

Что я имею в виду, это длина?

1 Ответ

0 голосов
/ 12 ноября 2018

l для длинных целых чисел.

Он назван так, чтобы отличать от старого seek() в версии 2 AT & T Unix. Это анахронизм до появления типа off_t.


Ссылки:

Infohost обозначает:

Символ l в имени lseek означает «длинное целое». Перед введение типа данных off_t, аргумента смещения и возвращаемое значение было длинными целыми числами. lseek был представлен в версии 7 когда длинные C. были добавлены к C. (Подобные функции предоставляется в версии 6 функциями seek и tell.)

Как отмечено у подножия lseek.html :

 A seek() function appeared in Version 2 AT&T UNIX, later renamed into
 lseek() for ``long seek'' due to a larger offset argument type.

Примечание: Перефразировано с Почему функция называется lseek (), а не seek ()?

...