還記得去年在準備某公司的筆試時遇到了一道題目,題目中要求」快速建立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...