欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何在Linux中使用lseek函數

這篇文章給大家介紹如何在Linux中使用lseek函數,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成都創(chuàng)新互聯公司為企業(yè)級客戶提高一站式互聯網+設計服務,主要包括成都做網站、成都網站建設、重慶APP軟件開發(fā)、成都小程序開發(fā)、宣傳片制作、LOGO設計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯各部門都有經驗豐富的經驗,可以確保每一個作品的質量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。 

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

頭文件以及函數聲明

#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);

offset為正則向文件末尾移動(向前移),為負數則向文件頭部(向后移)。

描述

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()函數會重新定位被打開文件的位移量,根據參數offset以及whence的組合來決定:

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

測試代碼:

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>

#define BUFFER_SIZE 1024
#define SRC_FILE_NAME "src_file"
#define DEST_FILE_NAME "dest_file"
//根據傳入的參數來設置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權限:rw
  if (src_file < 0 || dest_file < 0) {
    fprintf(stderr, "Open file error!\n");
    exit(1);
  }
  off_set = lseek(src_file, -OFFSET, SEEK_END);//注意,這里對offset取了相反數
  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;
}

如何在Linux中使用lseek函數

結果解析

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

關于如何在Linux中使用lseek函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享文章:如何在Linux中使用lseek函數
網頁路徑:http://aaarwkj.com/article20/pjdjjo.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站維護、品牌網站設計、定制網站、自適應網站、網站策劃、云服務器

廣告

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

網站優(yōu)化排名
久久国产精品人妻av| 一区二区不卡日韩av| 国产黄色看三级91大片| 国产婷婷色三区一区二区| 日本乱码一区二区三区在线观看| 久久夜色噜噜噜av一区| 久久精品一偷一偷国产| 国产成人亚洲综合色影视| 91青青草原在线视频| 国产成人99亚洲综合精品| 91国产熟女自拍视频| 国产亚洲精品福利视频| 成年爽片在线观看播放欧美| 国产午夜激情自拍视频| 久久热最新免费观看视频| 久久99国产精品成人免费| 婷婷色中文字幕综合在线| 国产a情人一区二区国产| 国产高清在线a视频大全| 国产老太婆精品久久久久| 日本午夜节目在线观看| 欧美日韩在线高清一区二区| 黄色三级亚洲男人的天堂| av福利一区二区三区| 日本中文字幕一区在线观看| 久久精品国产亚洲av热老太| 日韩精品在线另类亚洲| 日韩中文字幕免费一区二区| 免费毛片一区二区三区四区| 亚洲欧美日韩另类在线视频| 曰本真人性做爰视频免费| 日本高清不卡中文字幕| 日本精品亚洲一区二区三区| 不卡视频在线免费观看| 欧美日韩国产综合下一页| 国产三级国产精品国产专播| 国产激情视频一区二区三区| 国产精品成人大片在线播放| 东京成人热av男人的天堂| 亚洲奇米精品一区二区| 欧美高清精品在线视频|