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

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 閱讀(880) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用鏈接

留言簿(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>
            免费在线看一区| 老牛影视一区二区三区| 亚洲欧美日韩视频二区| 日韩视频不卡中文| 亚洲电影在线看| 久久99在线观看| 午夜在线不卡| 欧美在线免费视频| 六月丁香综合| 亚洲精品国产日韩| 亚洲人成网站精品片在线观看| 久久综合久久久| 久久综合亚洲社区| 欧美v国产在线一区二区三区| 免费在线看成人av| 亚洲高清一区二| 亚洲天堂av图片| 麻豆国产精品va在线观看不卡| 美女网站久久| 在线电影国产精品| 久久激情视频久久| 亚洲视屏一区| 国产精品日韩精品| 蜜臀久久99精品久久久画质超高清| 午夜国产不卡在线观看视频| 亚洲电影毛片| 久久精品女人的天堂av| 欧美性久久久| 在线一区视频| 欧美gay视频激情| 亚洲第一搞黄网站| 久久精品国产清自在天天线| 99国内精品久久| 欧美日韩视频在线一区二区| 亚洲大胆av| 久久精品国产精品亚洲综合| 亚洲人成久久| 欧美激情综合色| 精品不卡视频| 久久精品国产99精品国产亚洲性色 | 午夜精品成人在线视频| 欧美在线一二三区| 亚洲视频免费在线观看| 老鸭窝91久久精品色噜噜导演| 国外视频精品毛片| 午夜国产欧美理论在线播放| 91久久精品一区二区三区| 亚洲色在线视频| 欧美综合第一页| 日韩视频永久免费观看| 亚洲精品久久7777| 欧美亚洲不卡| 免费成人黄色av| 免费观看在线综合色| 亚洲视频精品| 久久久一区二区| 日韩视频二区| 亚洲在线观看免费| 欧美福利影院| 欧美视频专区一二在线观看| 亚洲国产第一| 国产精品久久久久久久久久久久久 | 99热这里只有精品8| 中文亚洲视频在线| 日韩系列欧美系列| 久久久av毛片精品| 亚洲一区二区三区免费观看| 欧美怡红院视频| 在线免费精品视频| 亚洲欧美日韩国产中文在线| 制服丝袜亚洲播放| 欧美区在线观看| 欧美激情国产日韩精品一区18| 国产一区二区精品久久| 亚洲天堂免费在线观看视频| 在线播放中文一区| 午夜一区二区三视频在线观看 | 国产精品video| 亚洲第一区在线观看| 在线日本成人| 久久亚洲美女| 亚洲乱码精品一二三四区日韩在线| 日韩一区二区精品葵司在线| 久久久精品久久久久| 欧美ed2k| 在线视频日韩| 国产日韩精品久久| 亚洲午夜免费福利视频| 欧美精品免费在线| 亚洲国产精品久久| 亚洲一区二区在线看| 国产久一道中文一区| 美女主播精品视频一二三四| 99国产精品视频免费观看| 久久久蜜桃精品| 99亚洲精品| 亚洲风情亚aⅴ在线发布| 欧美体内she精视频| 久久久免费精品| 亚洲私人黄色宅男| 亚洲精品在线视频| 欧美福利视频在线| 欧美一级专区| 香蕉久久精品日日躁夜夜躁| 亚洲人屁股眼子交8| 国产欧美 在线欧美| 免费久久99精品国产| 欧美一区二区三区男人的天堂| 一区二区三区www| 亚洲国产影院| 亚洲成色777777女色窝| 久久资源在线| 欧美成人中文字幕| 亚洲精品乱码久久久久久黑人| 欧美华人在线视频| 亚洲第一黄色网| 亚洲免费成人| 欧美在线播放高清精品| 欧美一区激情视频在线观看| 欧美在线视频a| 久久欧美肥婆一二区| 久久资源在线| 欧美深夜影院| 欧美三级日本三级少妇99| 欧美午夜宅男影院| 国产在线乱码一区二区三区| 亚洲丶国产丶欧美一区二区三区| 久久久青草婷婷精品综合日韩| 欧美成人高清视频| 国产精品系列在线| 亚洲日韩欧美视频一区| 欧美在线观看日本一区| 亚洲激情成人| 久热精品视频在线观看| 国产精品激情偷乱一区二区∴| 国内精品视频一区| 欧美一二三区在线观看| 亚洲人成网站在线观看播放| 欧美夜福利tv在线| 国产精品成人免费视频| 亚洲另类一区二区| 免费观看欧美在线视频的网站| 午夜视频一区二区| 国产精品一区二区在线观看不卡| 99亚洲伊人久久精品影院红桃| 久久五月激情| 久久国产日韩| 激情久久久久久久| 久久久亚洲国产天美传媒修理工 | 亚洲午夜免费视频| 亚洲精品一区二区三区福利| 欧美 日韩 国产一区二区在线视频 | 国产一区二区三区免费观看| 亚洲一区国产精品| 日韩午夜电影在线观看| 国产精品久久久久av免费| 欧美一级成年大片在线观看| 亚洲欧美色婷婷| 在线观看中文字幕不卡| 亚洲大片在线| 国产精品综合av一区二区国产馆| 欧美制服第一页| 免费观看国产成人| 久久尤物视频| 日韩午夜中文字幕| 午夜一区二区三区在线观看| 国内精品视频一区| 亚洲精品国产精品国自产在线| 国产精品久久国产愉拍 | 99国产成+人+综合+亚洲欧美| 亚洲精品视频一区| 激情综合亚洲| 亚洲一区二区三区免费视频| 在线观看日韩| 亚洲欧美国产精品专区久久| 激情成人亚洲| 99视频精品免费观看| 亚洲电影第三页| 午夜精品福利一区二区三区av | 日韩写真视频在线观看| 国产精品资源在线观看| 亚洲高清一区二| 亚洲黄色免费网站| 久久久国产一区二区三区| 久久成人人人人精品欧| 国产精品久久久久久久久久三级| 亚洲第一在线综合在线| 国产偷自视频区视频一区二区| 亚洲精品一区二区三区99| 亚洲精品国产视频| 欧美激情影院| 夜夜嗨av一区二区三区网站四季av | 91久久精品国产91久久性色| 在线日韩av| 欧美激情国产日韩精品一区18| 久久久久久伊人| 伊人久久婷婷| 欧美连裤袜在线视频| 亚洲另类春色国产| 亚洲一区日本|