Warum heißt die Funktion lseek (), nicht seek ()?

9

Die C-Funktion zum Suchen in einer Datei heißt lseek (). Warum heißt es nicht einfach suchen ()?

Niccolo M.
quelle
2
Was gibt es zurück?
andy256
@ andy256 off_tund wenn Sie den 64-Bit-Offset wollen, den Sie verwendenlseek64
Ratschenfreak
1
@ratchetfreak äh ... danke. Die Frage war für das OP, nicht für
mich
Ich vermute, dass es sich um eine evolutionäre Sache handelt, die nur aus der Vergangenheit stammt, in der zwischen long und int unterschieden wurde.
Ysap
3
Das zusätzliche Zeichen wurde hinzugefügt, um das fehlende Zeichen auszugleichen creat(). (Eigentlich steht das L wahrscheinlich für logisch.)
Blrfl

Antworten:

16

Es scheint, dass das 'l' in lseek 'lang' bedeutet, um sich von einer alten Suchfunktion in Version 2 von AT & T Unix zu unterscheiden. Dies ist ein Anachronismus, bevor der Typ off_t eingeführt wurde.

Unterstützende Referenzen:

http://infohost.nmt.edu/~eweiss/222_book/222_book/0201433079/ch03lev1sec6.html gibt Folgendes an:

Das Zeichen l im Namen lseek bedeutet "lange Ganzzahl". Vor der Einführung des Datentyps off_t waren das Offset-Argument und der Rückgabewert lange Ganzzahlen. lseek wurde mit Version 7 eingeführt, als lange Ganzzahlen zu C hinzugefügt wurden. (Ähnliche Funktionen wurden in Version 6 durch die Funktionen seek and tell bereitgestellt.)

Wie am Fuße von http://www.daemon-systems.org/man/lseek.2.html angegeben

 A seek() function appeared in Version 2 AT&T UNIX, later renamed into
 lseek() for ``long seek'' due to a larger offset argument type.
mc110
quelle
Intuition funktioniert immer noch ... :-)
ysap