青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長(zhǎng)網(wǎng)

深度解析Linux lseek函數(shù)的使用

2022-10-17 08:59| 查看: 1238 |來源: 互聯(lián)網(wǎng)

注:如果文章內(nèi)容有誤,請(qǐng)留言指出,謝謝合作。 名字 Name : lseek - reposition read/write file offset lseek函數(shù)的作用是用來重新定位文件讀寫的位移。 ...

注:如果文章內(nèi)容有誤,請(qǐng)留言指出,謝謝合作。

名字

Name : lseek - reposition read/write file offset

lseek函數(shù)的作用是用來重新定位文件讀寫的位移。

頭文件以及函數(shù)聲明

#include
#include
off_t lseek(int fd, off_t offset, int whence);

offset為正則向文件末尾移動(dòng)(向前移),為負(fù)數(shù)則向文件頭部(向后移)。

描述

lseek() repositions the file offset of the open file description associated with the file descriptor fd to the argument offset according to the directive whence as follows:
SEEK_SET The file offset is set to offset bytes.
SEEK_CUR The file offset is set to its current location plus offset bytes.
SEEK_END The file offset is set to the size of the file plus offset bytes.

lseek() allows the file offset to be set beyond the end of the file (but this does not change the size of the file). If data is later written at this point, subsequent reads of the data in the gap (a “hole”) return null bytes (‘\0') until data is actually written into the gap.

lseek()函數(shù)會(huì)重新定位被打開文件的位移量,根據(jù)參數(shù)offset以及whence的組合來決定:

SEEK_SET:
  從文件頭部開始偏移offset個(gè)字節(jié)。
SEEK_CUR:
  從文件當(dāng)前讀寫的指針位置開始,增加offset個(gè)字節(jié)的偏移量。
SEEK_END:
  文件偏移量設(shè)置為文件的大小加上偏移量字節(jié)。

測(cè)試代碼:

#include
#include
#include
#include
#include
#include
#define BUFFER_SIZE 1024
#define SRC_FILE_NAME "src_file"
#define DEST_FILE_NAME "dest_file"
//根據(jù)傳入的參數(shù)來設(shè)置offset
#define OFFSET (atoi(args[1])) 

int main(int argc, char*args[]) {
  int src_file, dest_file;
  unsigned char buff[BUFFER_SIZE];
  int real_read_len, off_set;
  if (argc != 2) {
    fprintf(stderr, "Usage: %s offset\n", args[0]);
    exit(-1);
  }
  src_file = open(SRC_FILE_NAME, O_RDONLY);
  dest_file = open(DEST_FILE_NAME, O_WRONLY | O_CREAT, S_IREAD | S_IWRITE );//owner權(quán)限:rw
  if (src_file < 0 || dest_file < 0) {
    fprintf(stderr, "Open file error!\n");
    exit(1);
  }
  off_set = lseek(src_file, -OFFSET, SEEK_END);//注意,這里對(duì)offset取了相反數(shù)
  printf("lseek() reposisiton the file offset of src_file: %d\n", off_set);
  while((real_read_len = read(src_file, buff, sizeof(buff))) > 0) {
    write(dest_file, buff, real_read_len);
  }
  close(dest_file);
  close(src_file);
  return 0;
}

結(jié)果解析

觀察offset以及dest_file和src_file文件的大小不難看出:程序通過lseek函數(shù)將src_file文件指針重新定位到文件末尾 + offset(注意,本程序?qū)ffset取了相反數(shù),即文件末尾 + (-offset))處,然后從文件末尾 + offset處開始向前復(fù)制文件到dest_file中。

以上所述是小編給大家介紹的深度解析Linux lseek函數(shù)的使用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)17站長(zhǎng)網(wǎng)的支持!

本文最后更新于 2022-10-17 08:59,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長(zhǎng):[email protected]
·END·
站長(zhǎng)網(wǎng)微信號(hào):w17tui,關(guān)注站長(zhǎng)、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營(yíng)銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長(zhǎng)網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信

大家都在看

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 日本视频中文字幕一区二区 | 黄色三级视频在线 | 久久人妻少妇嫩草AV無碼 | 午夜国产一区在线观看 | WWW国产精品内射老师 | 恋夜影视列表免费安卓手机版 | 精品久久电影网 | 亚洲成a人片777777久久 | 日本特交大片免费观看 | 云南14学生真实初次破初视频 | 精品亚洲一区二区在线播放 | 东北疯狂xxxxbbbb中国 | 亚洲国产在线精品国自产拍五月 | 日本孕妇大胆孕交 | 免费看毛片的网址 | 午夜伦午夜伦锂电影 | 熟女人妻-蜜臀AV-首页 | 《乳色吐息》无删减版在线观看 | 亚洲精品在线观看视频 | 亚洲精品久久无码AV片银杏 | 黄色三级视频在线观看 | 超碰在线视频人人AV | 农民工老头在出租屋嫖老熟女 | 快播电影网址 | 久久精品免视看国产 | 国产三级在线免费观看 | 久久热国产在线视频 | 色偷偷成人网免费视频男人的天堂 | 亚洲1卡二卡3卡4卡新区在线 | 91在线青春娱乐精品分类 | 狠狠鲁快播 | 久久这里只有精品视频e | 小776论坛| 99国产视频| 国产亚洲人成网站在线观看播放 | 古代又黄又肉到湿的爽文 | 久久综合伊人 | 性满足久久久久久久久 | 九色PORNY真实丨国产大胸 | 天天槽任我槽免费 | 经典WC女厕所里TV |