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

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
<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(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私拍在线观看 | 国产精品亚洲成人| 亚洲一区免费网站| 亚洲一区欧美二区| 国产一区二区三区网站| 美乳少妇欧美精品| 欧美伦理影院| 欧美一级电影久久| 久久嫩草精品久久久久| 亚洲精品一区二区三区在线观看| 91久久综合| 国产精品久久久久久亚洲调教| 香蕉久久夜色精品| 狼人社综合社区| 一区二区三区日韩| 欧美在线国产精品| 亚洲精品男同| 亚洲欧美一区二区激情| 亚洲第一精品夜夜躁人人躁| 亚洲另类自拍| 一区二区三区在线观看视频| 亚洲激情专区| 国外成人在线| 野花国产精品入口| 亚洲电影观看| 亚洲主播在线| 久久视频国产精品免费视频在线| 中国成人黄色视屏| 久久免费视频网| 亚洲制服av| 欧美福利视频| 久久久青草婷婷精品综合日韩| 欧美精品一区二区三区四区| 久久久久www| 国产精品青草久久久久福利99| 欧美成人精品在线观看| 国产精品蜜臀在线观看| 欧美大秀在线观看| 国产一区二区三区四区在线观看 | 久久亚洲电影| 国产精品国产精品| 91久久黄色| 亚洲成色最大综合在线| 性久久久久久久| 亚洲欧美日韩区| 欧美午夜电影一区| 亚洲人在线视频| 亚洲精品综合精品自拍| 久久全球大尺度高清视频| 欧美中文字幕不卡| 国产精品你懂得| 一本大道久久a久久综合婷婷| 91久久夜色精品国产网站| 久久久久久夜| 另类欧美日韩国产在线| 国产尤物精品| 欧美自拍偷拍午夜视频| 久久精彩视频| 国产香蕉久久精品综合网| 亚洲男人第一网站| 午夜性色一区二区三区免费视频| 欧美午夜一区二区| 亚洲一区二区免费在线| 午夜在线一区| 国产日韩欧美在线播放不卡| 午夜免费日韩视频| 久久精品官网| 欲色影视综合吧| 老司机精品视频一区二区三区| 久久久久久一区| 在线日韩av片| 欧美激情一区二区三级高清视频| 亚洲国产一区二区a毛片| 日韩手机在线导航| 欧美午夜宅男影院在线观看| 亚洲综合电影| 久久综合亚州| 日韩视频免费在线观看| 国产精品video| 欧美资源在线观看| 亚洲国产精品一区二区久| 一区二区三区欧美视频| 国产女精品视频网站免费| 久久久久久久波多野高潮日日| 欧美成人乱码一区二区三区| 一区二区三区国产在线观看| 国产精品日本精品| 鲁大师成人一区二区三区| 亚洲人成在线观看一区二区| 亚洲专区在线| 一区在线观看| 欧美日韩亚洲一区二区三区在线观看| 亚洲免费成人av电影| 亚洲成在线观看| 欧美日韩在线视频一区二区| 久久久噜久噜久久综合| 香蕉尹人综合在线观看| 激情视频一区二区三区| 欧美日韩视频免费播放| 午夜日韩在线| 亚洲激情二区| 久久久久久久久综合| 一区二区三区波多野结衣在线观看| 国产精品青草久久| 欧美黄色影院| 久久久久国产精品一区三寸| 亚洲精品在线免费| 久久综合99re88久久爱| 亚洲女人天堂av| 亚洲国产精品福利| 国产日本欧美视频| 欧美揉bbbbb揉bbbbb| 久久久久综合网| 午夜精品久久久久久久99樱桃| 亚洲精品社区| 欧美国产日韩在线| 久久久久久国产精品一区| 在线视频一区观看| 在线观看亚洲精品| 国产香蕉97碰碰久久人人| 欧美视频一区二区在线观看| 麻豆精品网站| 久久久久久久欧美精品| 亚洲一区二区三区精品在线| 亚洲激情一区二区三区| 欧美国产成人精品| 免费国产一区二区| 久久久久国产一区二区三区| 午夜在线精品偷拍| 亚洲欧美中文字幕| 亚洲欧美日韩综合国产aⅴ| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 国产日韩精品在线观看| 欧美网站大全在线观看| 欧美日韩国产一区| 欧美成人免费网| 欧美成人精品在线视频| 麻豆精品视频在线观看| 蜜桃av久久久亚洲精品| 每日更新成人在线视频| 麻豆国产va免费精品高清在线| 久久精品视频在线| 久久综合给合久久狠狠色| 久久国产精品毛片| 久久午夜电影网| 免费观看国产成人| 欧美电影免费观看高清| 欧美精品粉嫩高潮一区二区| 欧美久久婷婷综合色| 欧美日韩成人综合| 国产精品成人观看视频免费| 国产模特精品视频久久久久| 国产亚洲欧洲997久久综合| 国产一区999| 在线日韩电影| 99精品欧美一区| 亚洲一区三区电影在线观看| 欧美在线你懂的| 米奇777在线欧美播放| 亚洲国产精品尤物yw在线观看| 亚洲人成在线免费观看| 中文亚洲免费| 久久久久久**毛片大全| 免费观看成人www动漫视频| 欧美日韩国产综合一区二区| 国产精品外国| 欧美国产日韩a欧美在线观看| 欧美精品国产一区二区| 欧美午夜视频在线观看| 国产一区二区精品| 亚洲日本国产| 午夜视频精品| 欧美激情第六页| 亚洲午夜av电影| 老**午夜毛片一区二区三区| 欧美日韩精品福利| 韩国女主播一区| 亚洲少妇在线| 欧美成人精品1314www| 一区二区三区免费在线观看| 欧美诱惑福利视频| 欧美日韩免费在线视频| 国产亚洲欧美日韩在线一区| 日韩一级大片在线| 久久人人97超碰精品888| 日韩午夜激情| 狂野欧美一区| 国产中文一区| 亚洲愉拍自拍另类高清精品| 欧美成人tv| 欧美一区二区黄| 欧美视频在线一区| 最新亚洲视频| 久久免费国产| 亚洲欧美日本国产专区一区| 欧美激情综合五月色丁香小说 | 欧美3dxxxxhd| 国产综合色精品一区二区三区| 一区二区三区久久网|