日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过lseek产生空洞文件

發布時間:2024/4/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过lseek产生空洞文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//off_t lseek(int fd,off_t offset, int base) 偏移量 搜索的起始位置(文件頭(SEEK_SET),當前指針位置(SEEK_CUR),文件尾(SEEK_END))unistd.h
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//#define ERR_EXIT(m)? (perror(m),exit(EXIT_FAILURE))
#define ERR_EXIT(m)\
?? ?do\
?? ?{\
?? ??? ?perror(m);\
?? ??? ?exit(EXIT_FAILURE);\
?? ?}while(0)? //宏要求一條語句
int main(void)
{
?? ?int fd;
?? ?fd=open("hole.txt",O_WRONLY|O_CREAT|O_TRUNC,0644);
?? ?if(fd==-1)
?? ??? ?ERR_EXIT("open error");
??? //寫入5個字符
?? ?write(fd,"ABCDE",5);
?? ?//將文件偏移
?? ?//od? -c hole.txt查看文件空洞。實際磁盤上并未存放\0這些空洞  ls -lh hole.txt有1.1G但實際磁盤上并未全部存儲。
?? ?//并未在磁盤中全部存放,很多的\0信息未存放在磁盤,只有部分信息。du -h hole.txt(磁盤最小塊4K大小)
?? ?if(ret==-1)
?? ?int ret=lseek(fd,1024*1024*1024/*32*/,SEEK_CUR);? //從文件當前位置,偏移到1G之后。只在內核中操作,實際不在磁盤操作。
?? ??? ?ERR_EXIT("lseek error");
?? ?write(fd,"hello",5);
?? ?close(fd);
?? ?return 0;
}

轉載于:https://www.cnblogs.com/wsw-seu/p/8280593.html

總結

以上是生活随笔為你收集整理的通过lseek产生空洞文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。