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

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| 亚洲激情不卡| 久久人人97超碰精品888| 亚洲欧美一区二区三区久久 | 欧美sm极限捆绑bd| 麻豆成人小视频| 亚洲高清色综合| 亚洲国产精品一区二区第一页| 91久久精品国产91性色| 亚洲午夜久久久| 久久五月天婷婷| 欧美日韩国产大片| 国产专区欧美精品| aa亚洲婷婷| 久久婷婷激情| 亚洲激情亚洲| 香蕉久久国产| 欧美精品免费在线观看| 国产欧美日韩视频一区二区三区| 伊人夜夜躁av伊人久久| 亚洲视频一区二区| 蜜桃av一区二区| 亚洲综合成人在线| 欧美精品在线一区二区| 国内精品久久久久影院 日本资源| 亚洲精品午夜精品| 久久久久久尹人网香蕉| 99国产精品久久久久老师| 久久精品99| 国产精品美女在线| 一个色综合av| 欧美电影美腿模特1979在线看| 亚洲一区二区在线免费观看视频| 欧美1区2区| 激情六月婷婷综合| 欧美一区二区视频观看视频| 91久久黄色| 免费av成人在线| 红桃av永久久久| 亚洲综合99| 一区二区三区四区国产| 欧美激情精品久久久久久大尺度| 激情av一区二区| 久久久久久香蕉网| 欧美亚洲综合另类| 国产欧美日韩视频一区二区三区| 亚洲性感美女99在线| 亚洲国产精品久久人人爱蜜臀| 久久国产黑丝| 狠狠久久综合婷婷不卡| 欧美一区二区三区四区在线观看| 日韩一二在线观看| 欧美连裤袜在线视频| 亚洲乱码国产乱码精品精可以看 | 国产精品成人一区二区三区吃奶| 亚洲国产精品热久久| 久久男人资源视频| 亚洲欧美网站| 韩国av一区二区三区在线观看 | 亚洲精品久久久久中文字幕欢迎你| 久久久久久久久伊人| 好看的日韩视频| 蜜臀久久99精品久久久画质超高清 | 欧美阿v一级看视频| 亚洲电影免费在线观看| 欧美1区2区3区| 美女视频黄免费的久久| 亚洲精品国产精品国自产在线 | 久久视频在线免费观看| 精品动漫3d一区二区三区免费版| 久久美女性网| 女女同性精品视频| 一本久道久久综合婷婷鲸鱼| 一区二区日韩精品| 国产精品你懂的在线欣赏| 久久精品五月婷婷| 鲁鲁狠狠狠7777一区二区| 亚洲另类在线视频| 亚洲一级在线| 国精品一区二区三区| 欧美激情二区三区| 国产精品久久91| 欧美a级片网| 欧美无砖砖区免费| 久久视频这里只有精品| 欧美华人在线视频| 性欧美暴力猛交另类hd| 久热精品视频| 亚洲免费在线视频一区 二区| 羞羞视频在线观看欧美| 亚洲国产一区二区精品专区| 日韩午夜精品| 亚洲成人在线观看视频| 9人人澡人人爽人人精品| 国产一区自拍视频| 亚洲日本va午夜在线电影| 国产精品视频精品视频| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美精品粉嫩高潮一区二区 | 亚洲婷婷综合色高清在线| 欧美亚洲综合网| 亚洲一区影音先锋| 麻豆视频一区二区| 欧美亚洲综合在线| 欧美成熟视频| 欧美中文字幕在线| 欧美精品日本| 欧美承认网站| 国产女主播一区二区三区| 亚洲国产欧美日韩精品| 国产真实乱偷精品视频免| 中文亚洲免费| 亚洲毛片播放| 久久久久久成人| 久久精品主播| 国产精品爽爽ⅴa在线观看| 亚洲激情视频在线观看| 亚洲大片一区二区三区| 欧美制服丝袜第一页| 欧美亚洲日本网站| 欧美亚洲成人精品| 亚洲伦伦在线| 夜夜爽av福利精品导航| 欧美极品欧美精品欧美视频| 欧美激情一区二区| 18成人免费观看视频| 久久精品国产精品亚洲综合| 欧美在线观看www| 国产精品一区=区| 亚洲性视频h| 欧美一级二区| 国产欧美亚洲日本| 欧美一区二区三区喷汁尤物| 久久精品日韩| 国内精品视频在线播放| 久久久国产精品亚洲一区| 久久一区中文字幕| 在线观看91精品国产入口| 久久久欧美一区二区| 欧美777四色影视在线| 亚洲国内精品在线| 欧美国产乱视频| 亚洲精品视频一区| 亚洲一区欧美二区| 国产日韩欧美精品综合| 久久精品av麻豆的观看方式| 麻豆久久精品| 亚洲狼人综合| 国产精品三级久久久久久电影| 亚洲摸下面视频| 麻豆国产精品777777在线| 亚洲国产国产亚洲一二三| 欧美极品aⅴ影院| 亚洲天堂网在线观看| 久久婷婷人人澡人人喊人人爽| 亚洲国产一区二区a毛片| 欧美日韩123| 羞羞答答国产精品www一本| 欧美mv日韩mv国产网站app| 一区二区三区产品免费精品久久75| 国产精品成人v| 久久国产综合精品| 亚洲精品一区在线观看| 久久不射2019中文字幕| 亚洲国产精品视频一区| 欧美午夜不卡| 久久综合导航| 亚洲视频图片小说| 另类亚洲自拍| 亚洲欧美综合另类中字| 激情欧美日韩| 欧美午夜精品一区二区三区| 久久精品欧美日韩精品| 日韩一二在线观看| 免费人成精品欧美精品| 亚洲综合第一页| 亚洲国产精品尤物yw在线观看| 欧美午夜久久久| 免费不卡在线观看av| 亚洲无吗在线| 亚洲激情成人网| 久久一区二区三区国产精品| 亚洲伊人色欲综合网| 在线观看日韩av先锋影音电影院| 国产精品v日韩精品| 麻豆av一区二区三区久久| 亚洲一区二区免费| 亚洲三级影片| 欧美承认网站| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美成人在线影院| 久久野战av| 欧美在线观看视频一区二区三区| 日韩亚洲欧美精品| 亚洲国产精品日韩| 欧美福利电影网| 久久精品国产99国产精品| 亚洲一区二区三区免费在线观看| 亚洲国产毛片完整版| 激情小说另类小说亚洲欧美|