[20170925]建立檔案分配大小.txt
[20170925]建立檔案分配大小.txt
--//有時候工作需要建立一個檔案.一般在linux下使用dd.總結一下其他方法:
1.方法1:
$ cat a.c
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/io.h>
#include <stdio.h>
int main()
{
FILE* file = fopen ("test", "w+");
fseek (file, 64, SEEK_SET);
fprintf (file, "x");
fclose (file);
return 0;
}
$ gcc a.c
$ ./a.out
$ xxd -c 16 test
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000040: 78 x
--//偏移從0記數,這樣建立的檔案大小是65位元組.
2.方法2:.fallocate
--//實際上linux下有一個命令建立與分配檔案大小.fallocate命令.我僅僅知道centos6.X版本有這個命令.
--//按照man文件的提示:核心版本是2.6.31.
# man fallocate
FALLOCATE(1) FALLOCATE(1)
NAME
fallocate - preallocate space to a file.
SYNOPSIS
fallocate [-n] [-o offset] -l length filename
DESCRIPTION
fallocate is used to preallocate blocks to a file. For filesystems which support the fallocate system call,
this is done quickly by allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.
This is much faster than creating a file by filling it with zeros.
As of the Linux Kernel v2.6.31, the fallocate system call is supported by the btrfs, ext4, ocfs2, and xfs
filesystems.
The exit code returned by fallocate is 0 on success and 1 on failure.
# fallocate -l 10 a
# ls -l a
-rw-r--r-- 1 root root 10 2017-09-25 15:23:28 a
3.windows下:
--//windows下:
R:\>fsutil file createnew test.out 64
已建立檔案 R:\test.out
R:\>dir test.out
驅動器 R 中的卷是 RAMDISK
卷的序列號是 0122-14E0
R:\ 的目錄
2017/09/25 15:21 64 test.out
1 個檔案 64 位元組
0 個目錄 652,371,968 可用位元組
R:\>d:\tools\Vim\vim74\xxd.exe -c 16 test.out
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
--//有時候工作需要建立一個檔案.一般在linux下使用dd.總結一下其他方法:
1.方法1:
$ cat a.c
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/io.h>
#include <stdio.h>
int main()
{
FILE* file = fopen ("test", "w+");
fseek (file, 64, SEEK_SET);
fprintf (file, "x");
fclose (file);
return 0;
}
$ gcc a.c
$ ./a.out
$ xxd -c 16 test
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000040: 78 x
--//偏移從0記數,這樣建立的檔案大小是65位元組.
2.方法2:.fallocate
--//實際上linux下有一個命令建立與分配檔案大小.fallocate命令.我僅僅知道centos6.X版本有這個命令.
--//按照man文件的提示:核心版本是2.6.31.
# man fallocate
FALLOCATE(1) FALLOCATE(1)
NAME
fallocate - preallocate space to a file.
SYNOPSIS
fallocate [-n] [-o offset] -l length filename
DESCRIPTION
fallocate is used to preallocate blocks to a file. For filesystems which support the fallocate system call,
this is done quickly by allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.
This is much faster than creating a file by filling it with zeros.
As of the Linux Kernel v2.6.31, the fallocate system call is supported by the btrfs, ext4, ocfs2, and xfs
filesystems.
The exit code returned by fallocate is 0 on success and 1 on failure.
# fallocate -l 10 a
# ls -l a
-rw-r--r-- 1 root root 10 2017-09-25 15:23:28 a
3.windows下:
--//windows下:
R:\>fsutil file createnew test.out 64
已建立檔案 R:\test.out
R:\>dir test.out
驅動器 R 中的卷是 RAMDISK
卷的序列號是 0122-14E0
R:\ 的目錄
2017/09/25 15:21 64 test.out
1 個檔案 64 位元組
0 個目錄 652,371,968 可用位元組
R:\>d:\tools\Vim\vim74\xxd.exe -c 16 test.out
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2145422/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [android]建立固定大小檔案Android
- 配置檔案的建立分配及刪除
- Mac蘋果電腦怎麼建立txt檔案?Mac蘋果
- [20130527]估計redo檔案的大小.txt
- [20130412]rman備份檔案大小.txt
- Mac怎麼建立txt檔案?如何設定新建txt的快捷鍵?Mac
- LIUNUX如何擷取txt檔案中的內容,並建立新檔案UX
- [20170118]linux建立檔案型交換檔案.txtLinux
- 得到檔案大小
- [20121114]Oracle資料檔案大小限制.txtOracle
- [20190410]dg建立臨時表檔案資料檔案.txt
- 限制檔案大小及顯示檔案大小(正規表示式
- archive log檔案大小與redo log檔案大小關係探究Hive
- java 獲取資料夾大小、檔案大小、檔案個數Java
- [20181203]改變檔案大小與檢查點.txt
- [20150527]bbed解決資料檔案大小問題.txt
- temp檔案空間的分配
- php如何上傳txt檔案,並且讀取txt檔案PHP
- PCL——txt檔案轉到PCD檔案
- Windows/Linux 平臺快速的建立一個指定大小的檔案WindowsLinux
- 修改上傳檔案大小
- 日誌檔案的大小
- 增大redo log檔案大小
- [20180319]windows批處理檔案大小比較.txtWindows
- [20141202]改變檔案大小與檢查點.txt
- [20121127]rman備份資料檔案大小與truncate.txt
- Windows 快速統計檔案列表中檔案大小Windows
- windows下檔案系統支援的檔案大小Windows
- Linux stat函式獲取檔案屬性(檔案大小,建立時間等,判斷普通檔案或者目錄等)Linux函式
- Oracle 匯出txt檔案Oracle
- 改變歸檔日誌檔案大小
- TimesTen-建立例項時提示記憶體、檔案系統無法分配記憶體
- SQLSERVER匯出TXT文字檔案,ORACLE SQL LOADER匯入TXT文字檔案SQLServerOracle
- php檔案上傳大小限制PHP
- apache上傳檔案大小限制Apache
- resize 資料檔案的大小
- Linux檢視檔案大小Linux
- apache限制上傳檔案大小Apache