編譯檔案
gcc filecut.c -o filecut
用法
filecut (要處理的檔名)
(裁剪開頭的n個位元組)
(裁剪結尾的n個位元組)
舉例: 裁剪掉檔案testfile的開頭10個位元組和結尾的20個位元組,然後程式缺省會生成乙個名為new_file的檔案。
filecut testfile 10
20
**實現如下,可直接使用。思路就是用fseek定位檔案位置,拷貝需要的資料寫進乙個新的檔案。
#include
"stdio.h"
#include
"stdlib.h"
intmain
(int argc,
char
**ar**)
;int begin_len=0;
int end_len=0;
int total_len=0;
int len=0;
file *fp=
null
; file *fp_new=
null
; begin_len=
atoi
(ar**[2]
);end_len =
atoi
(ar**[3]
);printf
("begin_len=%d,end_len=%d\n"
,begin_len,end_len);
fp =
fopen
(ar**[1]
,"r");
if(fp ==
null
) fp_new =
fopen
("new_file"
,"w");
if(fp_new ==
null
)fseek
(fp,
-end_len,
seek_end);
total_len =
ftell
(fp)
-begin_len;
printf
("total_len=%d\n"
,total_len)
;fseek
(fp,begin_len,
seek_set);
while
(total_len >
1024
) len=
fread
(buf,
1,total_len,fp)
;fwrite
(buf,
1,len,fp_new)
;printf
("the last frame len=%d\n"
,len)
;fclose
(fp)
;fclose
(fp_new)
;return0;
}
二進位制檔案
本質上是文字檔案是把檔案資訊先轉化成以字元編碼的ascii碼,再儲存ascii的二進位制 而二進位制檔案是直接把檔案資訊編碼成二進位制儲存。因此在讀取的時候要考慮記憶體中二進位制 應該怎麼樣解釋。二進位制檔案的讀取是是要告訴元素的型別 編碼方式 文字檔案則預設為char型別。文字檔案是一種特殊的二進...
二進位制檔案
二進位制檔案 也叫型別檔案 二進位制檔案是由一批同一型別的資料組成的乙個資料序列,就是說乙個具體的二進位制檔案只能存放同一種型別的資料。type tmember record name string 10 email string 20 posts longint end var members a...
二進位制檔案
二進位制檔案 也叫型別檔案 二進位制檔案是由一批同一型別的資料組成的乙個資料序列,就是說乙個具體的二進位制檔案只能存放同一種型別的資料。type tmember record name string 10 email string 20 posts longint end var members a...