檔案操作 linux快速建立大檔案的方法

2021-07-23 22:47:39 字數 1132 閱讀 4413

還記得去年在準備某公司的筆試時遇到了一道題目,題目中要求」快速建立1g的大檔案「,後面的要求這裡暫且就省略了。如何快速建立指定大小的大檔案呢?可能有很多種辦法,這裡提供兩種辦法。

1、利用dd命令操作建立檔案

//結合c語言,可以使用system函式呼叫shell命令

char *shell = "dd if=/dev/zero of=test.txt bs=1k count=1024";

system(shell);

其中 if=輸入的檔案,of=輸出檔案,bs=塊大小 ,count=塊數量。

bs和count的單位設定,man函式中提及如下,檢視完整引數請參見manuel手冊:

blocks

andbytes

maybe

followed

bythe

following

multiplicative

suf‐fixes:

c =1,

w =2,

b =512,

kb =1000,

k =1024,

mb =1000*1000,

m=1024*1024,

xm =m

gb =1000*1000*1000,

g=1024*1024*1024,

andso

onfor

t, p, e, z, y.

2、利用檔案操作的檔案指標移位產生空洞檔案

這裡指的是將檔案指標移動到距離檔案頭指定大小的地方,再進行寫操作(注意,這裡移動完檔案位移量後一定要寫點東西,否則無效)

int main(void)

//為了建立乙個大小為3m的檔案,我們先少建立2個位元組,然後在寫檔案的時候補充2位元組

lseek(fd , 1024 * 1024

*3 -2, l_set);

write(fd , "e" , 1);

close(fd);

return

0 ;}

Linux檔案操作 1 檔案的開啟及建立

標頭檔案 include sys types.h include sys stat.h include fcntl.h intopen const char pathname,int flags intopen const char pathname,int flags,mode t mode pa...

linux預習3 檔案操作

1.裝置檔案 dev console系統控制台 dev tty控制終端的別名 鍵盤和顯示器 dev null空裝置 2.系統呼叫 open,read,write,close,ioctl 把控制資訊傳遞給裝置驅動程式 write int fildes,const void buf,size t nby...

2 檔案萬用字元,檔案建立 複製等操作

變數 用於儲存命令執行成功與否的狀態,0表示成功,1 255表示失敗,以命令ls為例 其他錯誤狀態,也會是非0結果。使用反引號 或 可引用其他命令的執行結果 root localhost ls d var l digit lower var l13u var lfs3k root localhost...