Linux下的lseek()函數(shù)有什么用

本篇內(nèi)容主要講解“Linux下的lseek()函數(shù)有什么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Linux下的lseek()函數(shù)有什么用”吧!

成都網(wǎng)站建設(shè)公司更懂你!創(chuàng)新互聯(lián)只做搜索引擎喜歡的網(wǎng)站!成都網(wǎng)站制作前臺(tái)采用搜索引擎認(rèn)可的DIV+CSS架構(gòu),全站HTML靜態(tài),H5頁面制作+CSS3網(wǎng)站,提供:網(wǎng)站建設(shè),微信開發(fā),小程序定制開發(fā),電子商務(wù)商城網(wǎng)站建設(shè),重慶APP開發(fā),國際域名空間,服務(wù)器租售,網(wǎng)站代托管運(yùn)營,微信公眾號(hào)代托管運(yùn)營。

每個(gè)打開的文件都有一個(gè)與其相關(guān)連的“當(dāng)前文件偏移量”( current file offset )。它通常是一個(gè)非負(fù)整數(shù),用以度量從文件開始處計(jì)算的字節(jié)數(shù)。通常,讀、寫操作都從當(dāng)前文件偏移量開始,并使偏移量增加所讀寫的字節(jié)數(shù)。按系統(tǒng)默認(rèn)情況,當(dāng)打開一個(gè)文件時(shí),除非指定 O_APPEND 選項(xiàng),否則該偏移量設(shè)置為 0。

lseek調(diào)用僅將當(dāng)前的文件偏移量記錄在內(nèi)核中,它并不引起任何的 I/O 操作。然后,該偏移量用于下一個(gè)讀或?qū)懖僮鳌?/p>

函數(shù)原型

#include<unistd.h>

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

參數(shù)fildes 為已打開的文件描述詞,參數(shù)offset 為根據(jù)參數(shù)whence來移動(dòng)讀寫位置的位移數(shù)。

whence為下列其中一種:(SEEK_SET,SEEK_CUR和SEEK_END和依次為0,1和2).

SEEK_SET 將讀寫位置指向文件頭后再增加offset個(gè)位移量。

SEEK_CUR 以目前的讀寫位置往后增加offset個(gè)位移量。

SEEK_END 將讀寫位置指向文件尾后再增加offset個(gè)位移量。

當(dāng)whence 值為SEEK_CUR 或SEEK_END時(shí),參數(shù)offet允許負(fù)值的出現(xiàn)。

下列是較特別的使用方式:

1) 欲將讀寫位置移到文件開頭時(shí):
lseek(int fildes,0,SEEK_SET);
2) 欲將讀寫位置移到文件尾時(shí):
lseek(int fildes,0,SEEK_END);
3) 想要取得目前文件位置時(shí):
lseek(int fildes,0,SEEK_CUR);

返回值

當(dāng)調(diào)用成功時(shí)則返回目前的讀寫位置,也就是距離文件開頭多少個(gè)字節(jié)。若有錯(cuò)誤則返回-1,errno 會(huì)存放錯(cuò)誤代碼。

可能設(shè)置erron的錯(cuò)誤代碼:

EBADF: fildes不是一個(gè)打開的文件描述符。

ESPIPE:文件描述符被分配到一個(gè)管道、套接字或FIFO。

EINVAL:whence取值不當(dāng)。

注:Linux系統(tǒng)不允許lseek()對(duì)tty裝置作用,此項(xiàng)動(dòng)作會(huì)令lseek()返回ESPIPE。

到此,相信大家對(duì)“Linux下的lseek()函數(shù)有什么用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章標(biāo)題:Linux下的lseek()函數(shù)有什么用
網(wǎng)站網(wǎng)址:http://bm7419.com/article48/gighep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、定制網(wǎng)站、網(wǎng)站營銷、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)