linux 下C語言對文字檔案的單行讀寫和刪除總結

2021-08-15 00:10:10 字數 1463 閱讀 1403

主要總結c對檔案的單行讀寫和刪除操作,主要用到的函式fopen,fclose,fseek,fprintf,fgets。其具體的使用方法可以參照osi c的主要介紹。一下主要封裝的介面:

單行的讀寫:

第乙個引數是函式名字,第二個引數是寫入要字串主要追加在行的末尾

int lcd_write_file(const char *filename, char * writebuf)

iret = fprintf(fp, "%s\n", writebuf);

if(-1 == iret)

fclose(fp);

return iret;

}

/* pathname -- read the path name , readbuf -- 出參,所讀函式的內容  inputlinenum -- 所要讀取的行數 */

int lcd_read_file(const char *pathname, char *readbuf, int inputlinenum);

fp = fopen(pathname, "r+");

if(null == fp)

while(null != fgets(tmpbuf, 100, fp)) }

if(linenum < inputlinenum)

return linenum;

}

刪除某個行的主要做法就是將原始檔copy乙份不帶那一行的臨時檔案,然後在重新命名該檔案即可。

int lcd_delete_file(const char *pathname, int linenum)

; char tmp1[512] = ;

file *fp;

/* all lines in the file */

alllinnum = lcd_read_file(pathname, tmp, 0);

memset(tmp, 0, sizeof(tmp));

if(alllinnum < linenum)

/* get the linenum-1 offset */

//offset_tmp2 = lcd_get_singleset_file(pathname, linenum - 1);

system("touch outmp.txt");

fp = fopen(pathname, "r+");

while(null != fgets(tmp, 100, fp)) }

fclose(fp);

sprintf(tmp, "rm %s; mv %s %s", "daill.txt", "outmp.txt", "daill.txt");

system(tmp);

return iret;

}

具體其他的一些操作可以參照以上封裝成介面函式,方便以後的呼叫。

shell比對文字檔案

1,對於檔案中的字元是以換行結尾的如下 root py test cat 1.txt 1122 aa33 cc root py test cat 2.txt 11cc ddee ff 使用如下 root py test cat 2.sh while read line1 do while read ...

linux下分割文字檔案

linux split 命令 功能說明 切割檔案。語 法 split help version 行數 b 位元組 c 位元組 l 行數 要切割的檔案 輸出檔名 補充說明 split可將檔案切成較小的檔案,預設每1000行會切成乙個小檔案。參 數 行數 或 l 行數 指定每多少行就要切成乙個小檔案。b...

C語言文字檔案解析

把檔案按照行分割成多個檔案 define row max length 80 define fnm max length 12 include include void main char ufilename fnm max length while ch eof ch fgetc fp 讀取單個字...