Tại sao hàm được gọi là lseek (), không tìm kiếm ()?


9

Hàm C để tìm kiếm trong một tệp được gọi là lseek (). Tại sao nó không được gọi là chỉ tìm kiếm ()?


2
Nó trở về cái gì?
andy256

@ andy256 off_tvà nếu bạn muốn bù 64 bit bạn sử dụnglseek64
ratchet freak

1
@ratchetfreak er ... cảm ơn. Câu hỏi là vì lợi ích của OP, không phải của tôi :-)
andy256

Tôi đoán rằng đó là một thứ tiến hóa, chỉ còn lại từ quá khứ nơi có sự phân biệt giữa dài và int.
ysap

3
Nhân vật phụ đã được thêm vào để bù cho người mất tích creat(). (Trên thực tế, chữ L có lẽ là viết tắt của logic.)
Blrfl

Câu trả lời:


16

Dường như 'l' trong lseek có nghĩa là 'dài', để phân biệt với chức năng tìm kiếm cũ trong phiên bản 2 của AT & T Unix. Đây là lỗi thời trước khi loại off_t được giới thiệu.

Tài liệu tham khảo hỗ trợ:

http://infohost.nmt.edu/~eweiss/222_book/222_book/0201433079/ch03lev1sec6.html cho biết:

Ký tự l trong tên lseek có nghĩa là "số nguyên dài." Trước khi giới thiệu kiểu dữ liệu off_t, đối số offset và giá trị trả về là các số nguyên dài. lseek được giới thiệu với Phiên bản 7 khi các số nguyên dài được thêm vào C. (Chức năng tương tự được cung cấp trong Phiên bản 6 bởi các chức năng tìm kiếm và cho biết.)

Như đã lưu ý dưới chân của http://www.daemon-systems.org/man/lseek.2.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.

Trực giác vẫn hoạt động ... :-)
ysap
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.