二進位制檔案裁剪開頭和結尾C語言實現

2021-10-10 06:16:15 字數 1521 閱讀 8635

編譯檔案

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...