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

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>
            91久久国产综合久久| 在线观看欧美日本| 一区二区欧美激情| 最新中文字幕一区二区三区| 久久免费一区| 噜噜噜在线观看免费视频日韩| 久久午夜电影网| 久久久亚洲一区| 久久亚洲综合色| 免费亚洲婷婷| 亚洲日韩中文字幕在线播放| 亚洲欧洲日产国产网站| 亚洲精品久久久一区二区三区| 91久久精品一区二区别| 亚洲国产精品久久久久秋霞不卡| 最近看过的日韩成人| 最新亚洲电影| 性欧美暴力猛交另类hd| 亚洲一区二区三区中文字幕在线| 欧美精品1区| 欧美日韩一区精品| 国产精品主播| 激情五月婷婷综合| 9久草视频在线视频精品| 先锋亚洲精品| 久久一区二区精品| 亚洲精品美女在线观看播放| 性色av一区二区三区| 久久人人爽人人爽| 欧美无乱码久久久免费午夜一区 | 久久精品国产999大香线蕉| 乱人伦精品视频在线观看| 99re6热只有精品免费观看| 亚洲欧美综合一区| 免费在线观看精品| 国产免费观看久久| 亚洲免费电影在线观看| 久久精品亚洲精品国产欧美kt∨| 亚洲国产精品第一区二区| 亚洲欧美怡红院| 欧美日韩综合不卡| 狠狠色综合播放一区二区| 亚洲图中文字幕| 欧美国产日韩一二三区| 久久久久久网站| 国产情人节一区| 亚洲一区二区三区在线| 亚洲国产欧美另类丝袜| 久久这里只有| 黑人一区二区| 欧美在线观看一二区| 一本色道久久综合亚洲精品不卡| 久久一区二区精品| 国产日产欧产精品推荐色 | 麻豆成人小视频| 亚洲欧美日本另类| 欧美特黄一区| 亚洲国产婷婷香蕉久久久久久99 | 亚洲一区在线播放| 亚洲欧洲精品一区二区精品久久久| 久久精品91| 黑人极品videos精品欧美裸| 久久不射网站| 欧美主播一区二区三区美女 久久精品人 | 亚洲一区二区三区午夜| 99re6热在线精品视频播放速度| 欧美不卡视频一区发布| 亚洲国产成人午夜在线一区| 欧美高清自拍一区| 久久伊人亚洲| 亚洲二区视频| 亚洲成色最大综合在线| 久久伊人精品天天| 亚洲电影av| 亚洲人成亚洲人成在线观看| 欧美高清在线观看| 亚洲色图制服丝袜| 在线性视频日韩欧美| 国产精品亚洲аv天堂网 | 久久爱91午夜羞羞| 午夜精品福利视频| 国内精品一区二区| 欧美成人免费全部| 猛男gaygay欧美视频| 日韩一二三区视频| 一区二区三区不卡视频在线观看 | 国产精品入口| 亚洲永久在线| 亚洲欧美一级二级三级| 精品1区2区| 欧美成人精品一区| 欧美三级电影精品| 久久精品91| 亚洲一区精品电影| 一区在线电影| 嫩草影视亚洲| 欧美日韩午夜剧场| 欧美亚洲综合在线| 久久国产日韩| 在线亚洲一区二区| 亚洲性色视频| 亚洲激情国产| 亚洲图片欧洲图片日韩av| 韩曰欧美视频免费观看| 亚洲国产欧美另类丝袜| 国产精品国色综合久久| 久久久欧美精品| 免费看的黄色欧美网站| 亚洲欧美视频一区| 欧美 日韩 国产在线| 亚洲一区免费看| 噜噜噜91成人网| 亚洲欧美成人综合| 麻豆成人在线观看| 校园春色国产精品| 欧美高清在线观看| 久久精品国产77777蜜臀| 欧美精品在线免费| 另类春色校园亚洲| 欧美视频一区在线| 欧美一级片一区| 香蕉精品999视频一区二区| 理论片一区二区在线| 亚洲欧美综合v| 欧美激情va永久在线播放| 欧美成人精品一区二区| 久久人人爽人人爽爽久久| 欧美小视频在线观看| 亚洲国产精品热久久| 一区二区在线观看视频在线观看| 亚洲精品一区二区网址| 亚洲大片av| 久久国产精品99精品国产| 久久超碰97人人做人人爱| 国产精品国产a级| 亚洲精品国产精品乱码不99按摩| 韩国一区电影| 亚洲欧美视频一区| 亚洲一区影院| 欧美国产在线观看| 亚洲国产精品热久久| 91久久极品少妇xxxxⅹ软件| 香蕉久久a毛片| 亚洲一区二区三区国产| 欧美成人a视频| 亚洲国产精品综合| 99国产精品久久久久久久成人热| 免费不卡视频| 亚洲国产岛国毛片在线| 影音先锋一区| 久久婷婷久久一区二区三区| 久久国产黑丝| 黄色成人免费网站| 久久久久久久久蜜桃| 亚洲一区黄色| 夜夜嗨av一区二区三区中文字幕 | 国产精品久久久久久av福利软件 | 你懂的国产精品| 黄色亚洲大片免费在线观看| 欧美自拍丝袜亚洲| 亚洲欧美日韩人成在线播放| 欧美日韩专区在线| 亚洲尤物精选| 欧美日韩在线大尺度| 亚洲免费观看| 亚洲一区二区三| 国产日韩欧美在线看| 午夜精品久久久久久久白皮肤 | 欧美午夜女人视频在线| 99热精品在线观看| 欧美在线观看视频在线| 国产精品久久久久久久一区探花| 亚洲午夜久久久久久久久电影院 | 亚洲一区二区黄色| 激情五月***国产精品| 亚洲国产成人精品视频| 欧美日韩一区在线播放| 日韩一区二区电影网| 欧美精品久久久久久久久老牛影院| 欧美一区激情视频在线观看| 欧美大片国产精品| 精品91视频| 欧美精品午夜| 亚洲一级高清| 亚洲福利视频网站| 国产精品99久久久久久久vr | 欧美日韩不卡一区| 欧美在线一二三区| 欧美激情精品久久久六区热门| 亚洲永久免费av| 狠狠色狠狠色综合人人| 欧美午夜激情小视频| 午夜精品久久久久久99热| 亚洲国产欧美久久| 99re这里只有精品6| 国产亚洲成av人在线观看导航| 欧美激情一区二区在线| 亚洲一本视频| 亚洲人成啪啪网站| 久久久精品国产免费观看同学|