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

如何在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影视中文字幕| 亚洲精品国产亚洲精品| 久久99精品综合国产女同| 蜜桃视频中文字幕二区三区 | 中文字幕日韩精品国产| 青青草成人公开在线视频| 国产第一页国产第一页| 日韩毛片免费看美日韩毛片| 日本亚洲中文字幕网站| 黄片超刺激在线看在线| 日本成熟亚洲中文字幕的| 日本成年网站在线观看| 亚洲 精品一区二区| 欧美亚洲清纯唯美另类| 先锋影音女同中文字幕| 风韵丰满熟妇老熟女啪啪| 人妻一区二区三区久久| 国产毛片久久久久久国产| 中文字幕人妻日韩在线| 成人一区二区三区播放| 免费黄色福利网址大片| 91福利免费在线看| 国产日本欧美一区二区三区| 日本韩国一级黄色免费| 日韩精品视频在线观看| 日韩中文字幕乱码卡一| 精品福利视频蜜臀91| 国产美女极度色诱视频| 动漫美女视频在线看黄| 亚洲国产精品va在线香蕉| 一区二区三区视频在线国产| 在线免费观看91亚洲| 日本一区二区三区电影播放| 欧美午夜精品一二三区| 日韩激情中文字幕一区二区三区| 免费观看久久黄色大片| 国产毛片久久久久久国产| 永久免费看黄在线观看|