青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

支持大文件的兩種方式:

1、gcc 加 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE

2、注意一定要定義在include之前

#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64

建議兩種方式都加上。

如何create大文件
要大就非常大,1T吧。
有兩種方法:
一.dd
dd if=/dev/zero of=1T.img bs=1G seek=1024 count=0
bs=1G表示每一次讀寫1G數據,count=0表示讀寫0次,seek=1024表示略過1024個Block不寫,前面block size是1G,所以共略過1T!
這是創建大型sparse文件最簡單的方法。
二.ftruncate64/ftruncate
如果用系統函數就稍微有些麻煩,因為涉及到宏的問題。我會結合一個實際例子詳細說明,其中OPTION標志的就是測試項。
文件sparse.c:
//OPTION 1:是否定義與大文件相關的宏
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#define FILENAME "bigfile"
#define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
int main(int argc, char **argv)
{
int fd, ret;
off_t offset;
int total = 0;
if ( argc >= 2 )
{
total = atol(argv[1]);
printf("total=%d\n", total);
}

//OPTION 2:是否有O_LARGEFILE選項
//fd = open(FILENAME, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
fd = open(FILENAME, O_RDWR|O_CREAT, 0644);
if (fd < 0) {
perror(FILENAME);
return -1;
}
offset = (off_t)total *1024ll*1024ll*1024ll;
printf("offset=%ld\n", offset);
//OPTION 3:是否調用64位系統函數
//if (ftruncate64(fd, offset) < 0)
if (ftruncate(fd, offset) < 0)
{
printf("[%d]-ftruncate64 error: %s\n", errno, strerror(errno));
close(fd);
return 0;
}
close(fd);
printf("OK\n");
return 0;
}
測試環境:
linux:/disk/test/big # gcc --version
gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)
linux:/disk/test/big # uname -a
Linux linux 2.6.11.4-20a-default #1 Wed Mar 23 21:52:37 UTC 2005 i686 i686 i386 GNU/Linux
測試結果(偽碼表示):
1.宏定義完全的情況下:
IF {O_LARGEFILE=TRUE && ftruncate64=TRUE}
OK;
ELSEIF {O_LARGEFILE=FALSE && ftruncate64=TRUE}
OK;
ELSEIF {O_LARGEFILE=FALSE && ftruncate64=FALSE}
運行不報錯,但是不支持>4G;
ELSEIF {O_LARGEFILE=TRUE && ftruncate64=FALSE}
運行不報錯,但是不支持>4G;
結論】:在宏定義完全的情況下,是否調用ftruncate64,是決定支持4G以上文件的關鍵,O_LARGEFILE無作用
2.宏定義不完全:缺少_FILE_OFFSET_BITS
首先聲明一點,O_LARGEFILE需要定義_LARGEFILE64_SOURCE
IF {O_LARGEFILE=TRUE && ftruncate64=TRUE}
產生不正常超大文件;
ELSEIF {O_LARGEFILE=FALSE && ftruncate64=TRUE}
產生不正常超大文件;
ELSEIF {O_LARGEFILE=FALSE && ftruncate64=FALSE}
運行不報錯,但是不支持>2G;
ELSEIF {O_LARGEFILE=TRUE && ftruncate64=FALSE}
運行不報錯,但是不支持>4G;
結論】:未定義_FILE_OFFSET_BITS的情況下,ftruncate64調用是非法的,會產生無法預料的后果,這里的測試就是產生一個超大文件(>1T),我也無法解釋其原因;O_LARGEFILE的作用就是在32位系統中支持大文件系統,允許打開那些用31位(2G)都不能表示其長度的大文件;此外,off_t為unsigned int類型,也就是說最多只能達到4G,所以ftruncate最大支持4G文件。
總結一下如果要支持超過2G的文件,至少需要定義_LARGEFILE64_SOURCE宏,并且設置O_LARGEFILE選項;如果要支持超過4G,需要定義所有上述的宏,并且調用ftruncate64;其余的搭配都是錯誤的!
】:
dd 的主要選項:
指定數字的地方若以下列字符結尾乘以相應的數字:
b=512, c=1, k=1024, w=2, m=1024k, g=1024m
大小寫不限。
if=file
輸入文件名,缺省為標準輸入。
of=file
輸出文件名,缺省為標準輸出。
ibs=bytes
一次讀入 bytes 個字節(即一個塊大小為 bytes 個字節)。
obs=bytes
一次寫 bytes 個字節(即一個塊大小為 bytes 個字節)。
bs=bytes
同時設置讀寫塊的大小為 bytes ,可代替 ibs 和 obs 。
cbs=bytes
一次轉換 bytes 個字節,即轉換緩沖區大小。
skip=blocks
從輸入文件開頭跳過 blocks 個塊后再開始復制。
seek=blocks
從輸出文件開頭跳過 blocks 個塊后再開始復制。(通常只有當輸出文件是磁盤或磁帶時才有效)
count=blocks
僅拷貝 blocks 個塊,塊大小等于 ibs 指定的字節數。
conv=conversion[,conversion...]
用指定的參數轉換文件。
轉換參數:
ascii 轉換 EBCDIC 為 ASCII。
ebcdic 轉換 ASCII 為 EBCDIC。
ibm 轉換 ASCII 為 alternate EBCDIC.
block 把每一行轉換為長度為 cbs 的記錄,不足部分用空格填充。
unblock
使每一行的長度都為 cbs ,不足部分用空格填充。
lcase 把大寫字符轉換為小寫字符。
ucase 把小寫字符轉換為大寫字符。
noerror
不顯示錯誤
notrunc
不截短輸出文件。
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊。



from:
http://hi.baidu.com/roxws/blog/item/785c4bcb61662ff853664f2d.html/cmtid/f990c324dee21627d50742e9

posted on 2010-12-10 11:36 chatler 閱讀(884) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区欧美在线观看| 精东粉嫩av免费一区二区三区| 久久精品人人| 一本久久综合| 亚洲激情视频在线| 蜜桃av一区| 久久er精品视频| 亚洲欧美日韩精品久久亚洲区 | 亚洲国产精品日韩| 久久久久99| 午夜精品久久久久| 亚洲一区www| 日韩午夜电影av| 最新中文字幕一区二区三区| 韩日视频一区| 国产一区二区三区自拍| 国产精品视频网| 欧美视频一区在线| 欧美日韩卡一卡二| 欧美精品久久久久久久久久| 欧美成人免费在线观看| 久久综合国产精品| 久久精品日产第一区二区三区| 校园春色国产精品| 午夜一区二区三区在线观看| 亚洲新中文字幕| 亚洲一区二区三区免费视频| 亚洲视频中文字幕| 亚洲一区二区精品在线| 国产精品99久久久久久久久| 一本到12不卡视频在线dvd| 99re热精品| 一区二区日韩欧美| 亚洲视频播放| 亚洲欧美日本在线| 久久se精品一区二区| 久久久久久欧美| 老司机免费视频久久| 欧美 日韩 国产在线| 欧美精品一区二区视频| 欧美日韩美女在线观看| 国产精品久久久一本精品| 国产精品久久久久久久app| 国产美女一区二区| 激情小说另类小说亚洲欧美| 在线精品一区二区| 亚洲看片免费| 亚洲午夜三级在线| 欧美在线观看视频一区二区| 久久免费视频观看| 欧美激情视频给我| 亚洲美女毛片| 亚洲欧美三级伦理| 久久久久免费观看| 欧美裸体一区二区三区| 国产精品美女午夜av| 国产一区自拍视频| 亚洲娇小video精品| 亚洲午夜国产成人av电影男同| 午夜影院日韩| 欧美91精品| 一区二区三区久久久| 久久国产日韩欧美| 欧美经典一区二区| 国产精品丝袜91| 亚洲国产精品成人精品| 亚洲视频自拍偷拍| 久久久一二三| 亚洲精品永久免费精品| 香蕉亚洲视频| 欧美黄色免费网站| 国产精品三区www17con| 亚洲国产精品热久久| 亚洲男人的天堂在线观看| 麻豆国产精品va在线观看不卡| 亚洲精品国产精品国产自| 亚洲欧美一级二级三级| 欧美高清在线精品一区| 国产精品一区二区三区乱码| 亚洲黄色成人网| 欧美自拍偷拍| 亚洲精品网址在线观看| 欧美伊人久久| 欧美香蕉视频| 亚洲人久久久| 久久精品亚洲| 一本色道**综合亚洲精品蜜桃冫| 久久精品成人一区二区三区蜜臀 | 亚洲欧美日韩精品久久| 欧美成人蜜桃| 性视频1819p久久| 欧美三级资源在线| 亚洲国产欧洲综合997久久| 欧美一区二区三区视频免费播放| 亚洲国产精品一区在线观看不卡| 欧美一区二区黄| 国产精品v日韩精品| 亚洲每日在线| 欧美成人一品| 久久精品道一区二区三区| 国产精品久久久久久久久久免费 | 久久精品免费观看| 在线综合欧美| 欧美人妖在线观看| 91久久综合亚洲鲁鲁五月天| 久久午夜羞羞影院免费观看| 亚洲尤物精选| 国产精品久久久一本精品| 99视频有精品| 亚洲成色精品| 另类国产ts人妖高潮视频| 国产一区二区三区视频在线观看 | 国产日韩欧美综合| 午夜精品久久久久久99热| 日韩视频精品在线观看| 欧美激情综合五月色丁香| 91久久夜色精品国产九色| 嫩模写真一区二区三区三州| 久久国产综合精品| 好吊一区二区三区| 久久久久亚洲综合| 亚洲欧美综合v| 国产精品午夜在线观看| 午夜精品福利视频| 亚洲综合精品| 国产伦精品一区二区三区| 欧美一级久久久| 午夜精品久久久久影视| 国产日韩欧美夫妻视频在线观看| 欧美一级久久久久久久大片| 午夜精品免费视频| 国产综合色产在线精品| 久久中文精品| 欧美sm视频| 一区二区三区欧美在线| 一本色道久久88精品综合| 欧美日韩综合| 欧美亚洲网站| 久久精品亚洲一区| 亚洲国产成人精品久久久国产成人一区 | 中日韩视频在线观看| 99国产精品久久久久久久| 国产精品久久久久久久久久久久久久 | 久久不射中文字幕| 一区二区在线视频观看| 欧美激情导航| 欧美欧美在线| 小辣椒精品导航| 久久精品国产999大香线蕉| 亚洲国产精品久久久久秋霞影院| 91久久中文字幕| 国产精品卡一卡二卡三| 久久久久女教师免费一区| 蜜臀av性久久久久蜜臀aⅴ| 夜夜爽99久久国产综合精品女不卡| 99精品免费视频| 国产亚洲精品v| 亚洲国产高潮在线观看| 国产精品videosex极品| 久久亚洲精品网站| 欧美激情一区二区在线| 亚洲欧美日韩在线观看a三区| 久久国产精品久久久久久| 亚洲肉体裸体xxxx137| 亚洲一区视频在线观看视频| 一区二区三区在线免费观看| 亚洲理伦电影| 国产色综合网| 最新中文字幕一区二区三区| 国产精品自拍三区| 亚洲大胆人体视频| 国产美女精品视频| 亚洲国内自拍| 国产专区精品视频| 日韩天堂在线视频| 激情欧美丁香| 亚洲一区二区免费看| 在线看不卡av| 亚洲一区二区在线看| 亚洲精品美女久久久久| 欧美一区二区三区久久精品| 99re6这里只有精品| 久久精品亚洲一区二区| 亚洲欧美另类在线| 欧美成人免费小视频| 久久精品亚洲国产奇米99| 欧美日韩国产精品| 男女av一区三区二区色多| 国产精品久久看| 亚洲三级影院| 亚洲国产美女| 欧美综合第一页| 午夜国产一区| 欧美日韩福利在线观看| 欧美不卡高清| 国内精品久久久久久久影视蜜臀 | 一卡二卡3卡四卡高清精品视频 | 一级成人国产| 亚洲每日更新| 麻豆久久婷婷|