關于linux下文件編程的幾點體會

在linux下編程有兩種方法,一種是用c庫函數的調用,另一種是用系統調用的方式。當然兩者有一定的區別,前者依賴于linux系統,而后者與操作系統是獨立的,在任何操作系統下,使用C語言庫函數操作文件的方法都相同。因為在試驗中我利用系統調用的方式實現了文件的拷貝,所以我談談操作中的注意點。

系統調用的方式與我們平時用c語言有較大的差異,其最主要的差異在于c語言是用指針來定義文件,如 FILE *fp,而系統調用則用文件描述符,這是一個由系統分配的非負整數。要實現文件拷貝,則首先要定義兩個文件描述符,對應著源文件和新文件,如 int from_fd,to_fd。其次,要定義緩存區。這個緩存的指針就像小車一樣,將讀取的數據先暫存于其中,然后再運到目標文件中,最后再清空。就這樣周而復始的進行下去,直到完全讀取完源文件。當然系統調用最重要的一點是在于main函數,他要包含入口參數及參數個數,這兩個變量將作為下面程序重要的if判斷依據,主要是用于檢查參數是否在于合理范圍之內。

在文件拷貝的過程中,用到了幾個重要的系統函數,比如打開文件用open,讀取文件用read,寫入用write,獲取文件大小用lseek。當然,在在最后也不能忘記用close關閉文件。同時也應該注意的是,在windows和linux下文件的差異,在linux下是不區分二進制和文本文件,而在windows中是有區分的,其對應的讀取方式也是不同的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容