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

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>
            亚洲激情自拍| 久久久久久香蕉网| 欧美日韩福利| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 午夜国产一区| 欧美在线播放高清精品| 在线观看国产日韩| 欧美 日韩 国产在线| 欧美高清视频一区二区| 中国女人久久久| 亚洲免费视频网站| 尤物99国产成人精品视频| 亚洲国产成人av在线| 欧美日韩国产一级| 久久久精彩视频| 欧美顶级大胆免费视频| 亚洲在线观看视频网站| 久久精品欧美日韩精品| 在线亚洲免费| 久久黄金**| 一区二区三区视频在线观看| 亚洲欧美一区二区视频| 亚洲国产一区二区在线| 99国产精品久久久久久久成人热 | 美女脱光内衣内裤视频久久影院 | 国产亚洲成精品久久| 亚洲国产欧美久久| 国产日韩精品视频一区二区三区 | 在线亚洲观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲作爱视频| 久久欧美肥婆一二区| 亚洲欧美日韩国产另类专区| 久久亚洲精选| 久久久久九九九九| 国产精品毛片大码女人| 亚洲高清123| 激情综合色综合久久| 一本色道久久综合亚洲精品不| 一区免费视频| 性欧美精品高清| 亚洲伊人伊色伊影伊综合网| 欧美1级日本1级| 久久久久综合一区二区三区| 国产精品福利av| 亚洲精品在线观看视频| 在线播放亚洲一区| 亚洲欧美日韩专区| 亚洲一区二区在线免费观看| 欧美gay视频激情| 免费久久99精品国产| 国产一区日韩二区欧美三区| 亚洲尤物在线| 先锋影院在线亚洲| 国产精品扒开腿做爽爽爽软件 | 男男成人高潮片免费网站| 国产视频不卡| 香蕉亚洲视频| 韩国福利一区| 欧美一级淫片aaaaaaa视频| 亚洲欧美日韩精品一区二区| 欧美日韩精品免费观看视频| 欧美激情第五页| 91久久一区二区| 久久亚洲私人国产精品va| 麻豆国产va免费精品高清在线| 国产亚洲精品久久久久久| 亚洲午夜一区二区三区| 欧美一区二区三区久久精品| 国产农村妇女精品| 午夜精品999| 久久午夜色播影院免费高清| 一区二区视频在线观看| 久久久久久穴| 欧美激情视频网站| 亚洲精品久久久一区二区三区| 欧美极品色图| 一本久久综合亚洲鲁鲁| 欧美一区二区三区视频免费播放 | 国产日韩欧美一区二区| 久久国产精品久久精品国产| 久久一区国产| 日韩写真在线| 国产精品久久久久久影视| 性色av一区二区怡红| 欧美成人精品在线播放| 99精品视频免费| 国产欧美精品一区二区三区介绍| 欧美中日韩免费视频| 亚洲国产毛片完整版| 午夜精品在线看| 亚洲第一黄网| 欧美三级视频在线观看| 久久疯狂做爰流白浆xx| 亚洲第一主播视频| 亚洲综合激情| 曰韩精品一区二区| 欧美性做爰猛烈叫床潮| 久久av红桃一区二区小说| 亚洲高清不卡| 久久本道综合色狠狠五月| 亚洲国产一成人久久精品| 国产精品久久久久久久久久免费 | 欧美在线黄色| 亚洲久久成人| 久久伊人精品天天| 亚洲主播在线观看| 亚洲精品免费一区二区三区| 国产欧美亚洲精品| 欧美激情综合网| 欧美在线视频免费观看| 一区二区三区精品| 亚洲成人在线视频播放 | 欧美一区二区大片| 亚洲大片精品永久免费| 久久国产免费看| 一区二区三区国产在线| 有坂深雪在线一区| 国产精品视频久久| 国产日韩精品一区二区| 国产精品久久久久久久免费软件 | 91久久一区二区| 久久在线精品| 欧美一区视频| 亚洲一级特黄| 亚洲精品一区二区三区不| 国产一区二区三区免费观看 | 免费美女久久99| 久久riav二区三区| 欧美一级在线亚洲天堂| 正在播放欧美一区| 亚洲精品网址在线观看| 亚洲国产精品va| 欧美国产一区视频在线观看| 久久影院午夜片一区| 欧美在线视频播放| 欧美一区二区成人| 亚洲欧美日韩一区二区在线| 夜夜嗨一区二区| 99国产精品久久久久老师| 亚洲国产mv| 亚洲精品国产精品乱码不99| 亚洲国内在线| 亚洲三级免费电影| 亚洲国产精品久久久久秋霞蜜臀| 国内精品一区二区三区| 国产亚洲人成网站在线观看| 国产婷婷色一区二区三区| 国产精品综合网站| 国产视频一区二区在线观看| 国产精品一区二区三区四区| 国产精品中文字幕在线观看| 国产免费亚洲高清| 国产一区二区| 国产专区精品视频| 精品动漫av| 亚洲免费成人av| 一区二区毛片| 午夜视频一区二区| 久久精彩视频| 欧美 日韩 国产精品免费观看| 亚洲国产精品精华液2区45| 亚洲黄色在线| 亚洲一区二区久久| 欧美一区国产二区| 久久综合一区| 欧美日韩视频| 国产视频精品xxxx| 亚洲国产女人aaa毛片在线| 日韩视频中文字幕| 欧美一区二区免费| 欧美不卡福利| 在线视频一区二区| 久久精品盗摄| 欧美日韩国产不卡在线看| 国产精品午夜国产小视频| 激情综合在线| 亚洲免费小视频| 久久尤物电影视频在线观看| 亚洲精品中文字| 欧美在线一区二区| 欧美日韩色婷婷| 在线播放不卡| 亚洲影院免费| 亚洲国产福利在线| 亚洲一区二区三区午夜| 蜜臀va亚洲va欧美va天堂| 国产精品久久久久影院色老大 | 欧美午夜理伦三级在线观看| 伊人夜夜躁av伊人久久| 亚洲一区二区三区激情| 免费国产一区二区| 亚洲免费在线播放| 欧美精品在线看| 在线免费观看欧美| 久久成人这里只有精品| 一本色道久久综合亚洲精品按摩 | 欧美中文字幕在线观看| 亚洲人成人99网站| 久久久国产一区二区三区|