linux下的檔案操作(1)

2021-04-13 01:35:07 字數 1470 閱讀 4641

1.開啟檔案

open 返回的是檔案描述符,不帶緩衝

fopen 返回的是file *,帶緩衝

根據引數不同,可以選擇不同的開啟方式,這是檔案操作的第1步

2.讀檔案

read

fread

這2個函式僅僅是按位元組讀取檔案

如果要按一定的規則對檔案讀取,則需要另外的函式

fscanf

例子1:

如果輸入資料的格式是這樣的,第乙個數是資料的個數,後面每一行是一組資料:21

2讀入程式是這樣的:

int n;

int a[n];

fscanf("%d", &n);

for(i = 0; i < n; i++)

在很多情況下,是需要實現按行讀取的,c庫中也有這種函式

fgets

getline

2個函式實現的功能是一樣的,個人感覺getline更好用,因為這個函式會自動申請空間,

另外這2個函式還可以用來檢測是否到了檔案結尾,拿getline來說,如果出錯或者到檔案結尾,

都將返回-1,這個時候只需要用feeor或者feof判斷下就可以了。

例子2:

拿baidu的水果開會時段來說,這個屬於輸入不定長型別   

輸入格式

輸入的第一行只有乙個整數n,表示購置水果的組數。接下來的n行表示水果的到達時間、取走時間(時間用1200到1900之間的正整數表示,保證取走時間大於到達時間)。剩下的字串以空格分割每一種水果。如「1400 1600 雪梨水蜜桃」,表示下午兩點到四點(包含兩點和四點這兩個時間點),雪梨和水蜜桃會在前台等待開會。每種水果名稱由不超過十個漢字組成。

輸入樣例1 例

31200 1400 雪梨 檸檬

1300 1400 西瓜 蘋果

1400 1800 花生 水蜜桃

讀取該型別檔案的程式如下:

#include

main()      

}if(ret!=-1)

strcat(str,temp);

//讀入一行,**還應當改進,如果str空間不夠,應該繼續申請空間

//printf("ret is %d/n",ret);

//printf("str is%d",*(str+ret-1));

sscanf(str,"%d%d%n",&time1[i],&time2[i],&n);

str+=n;

printf("time is%d%d/n",time1[i],time2[i]);

size_t size=100;

int j=0;

fru[i][j]=(char *)malloc(25);

while(sscanf(str,"%s%n",fru[i][j],&n)==1)

store[i]=j;

}for(i=0;ifree(str);

free(temp);

}

linux下的檔案操作

徹底刪除檔案 rm rf 檔案目錄 可相對可絕對 是徹底刪除而且linux無 站 建立檔案 touch 檔名 建立資料夾 mkdir 資料夾名 檔案提權 chmod 777 filename 記錄在linux下寫乙個python檔案的過程 1.vim filename py 沒有檔案會自行建立,有就...

Linux下的檔案管理1

1.檔案的建立 touch filename touch file1 file2 建立多個檔案 注 touch命令在系統中不僅可以新建檔案,也可以修改檔案的時間戳 時間標識 時間戳的檢視方式 stat filename 時間戳分為 2.目錄的建立 mkdir directory mkdir dir1...

linux下的檔案操作命令

使用gzip命令 1 壓縮 gzip 檔名 會被壓縮成擴充套件名為.gz的檔案 2 解壓縮 gzip d gz 還原成原來的檔案 使用tar命令 只打包並不壓縮 tar cvzf tar.gz 檔名 打包並壓縮 tar zxvf 檔名.tar.gz 呼叫gunzip,對.gz檔案進行解壓縮,然後再解...