1. 程式人生 > >Linux 系統程式設計學習-檔案I/O操作

Linux 系統程式設計學習-檔案I/O操作

一、非緩衝檔案操作

執行非緩衝檔案操作後,應用程式將立即獲取或傳送資料,非緩衝檔案操作的函式只有:read(),write()。

從檔案中將資訊講到到指定的記憶體區域中read(檔案識別符號,記憶體塊指標,記憶體塊長度);

返回值是實際讀取的長度,沒有讀取到資料返回0,錯誤返回1

檔案識別符號可使用open()函式獲得,或者使用系統預先分配的檔案識別符號。

將指定長度的資料寫入檔案中write(檔案識別符號,內存塊指標,記憶體塊長度) 返回值同read()函式

注:read(0,記憶體塊指標,記憶體塊長度)中檔案識別符號0是系統預定義的檔案識別符號,代表標準輸入,實現的操作與gets()或scanf()函式相當。

指定指標的具體位置lseek(檔案識別符號,偏移長度,起始位置) 返回值是指標位置,失敗返回-1

二、緩衝檔案操作

開啟檔案流fopen(路徑,開啟方式),返回值是檔案流指標,失敗返回NULL

關閉檔案流fclose(檔案流指標),當fclose()函式執行時,所有放在緩衝區等待寫入的資料都將被寫入到檔案中,如果資料沒能成功儲存,返回-1,否則返回0

需要用到檔案流結構指標 FILE *

讀取檔案流fread(緩衝區指標,長度,數量,檔案流指標)

寫入檔案流fwrite()

   fflush(緩衝區指標) 此函式是待寫入的資料儲存在緩衝區中,而又要立即將緩衝區的資料寫入檔案

檔案流的格式化輸入與輸出

fscanf(檔案流指標,“控制字串”,輸入項列表);返回值是正確輸入項的個數

fprintf(檔案流指標,“控制字串”,輸出項列表);返回值是實際輸出資料的長度

注:fscanf()並不是最靈活的實現方法,因為需要預先估計檔案的形式並定義控制字串,它會將所遇到數值為0的地方當作字串結束符處理。

檔案流的定位操作

fgetpos(檔案流指標,fpos_t *位置),獲得檔案當前讀寫位置,操作成功返回0,否則返回-1

fsetpos(檔案流指標,const fpos_t *位置)設定檔案讀寫位置,返回值同上

ftell(檔案流指標)獲得檔案當前讀寫位置偏移量,返回值為長整型

rewind(檔案流指標)

將檔案指標重新指向一個流的開頭

注:fpos_t型別是標準函式庫中定義的一種結構體,是檔案流FILE結構體中的一個成員。

檔案流操作的其他函式

fgetc(檔案流指標)從檔案讀取一個字元,並將該字元以整型資料返回給呼叫者;

fputc(字元型資料,檔案流指標) 向檔案輸出一個字元,返回操作結果

fgets(字串指標,最大長度,檔案流指標)從檔案讀取一個字串儲存到字串指標指向 的位置,操作成功返回字串指標

fputs(字串指標,檔案流指標)向檔案輸了一個字串,操作成功時返回字串的長度

freopen(路徑,開啟方式,檔案流指標)重新開啟一個檔案

setvbuf(檔案流指標,緩衝區指標,型別,緩衝區大小)設定檔案流的緩衝區

 remove(路徑)刪除檔案或目錄

檔案操作流的錯誤處理

ferror(檔案流指標)判斷檔案流操作是否失敗,失敗返回非0,否則返回0

feof(檔案流指標)當檔案流內指向檔案中位置的指標到達檔案尾,返回非0,否則返回0

clearee(檔案流指標)清除errno變數內錯誤資訊

相關推薦

Linux 系統程式設計學習-檔案I/O操作

一、非緩衝檔案操作 執行非緩衝檔案操作後,應用程式將立即獲取或傳送資料,非緩衝檔案操作的函式只有:read(),write()。 從檔案中將資訊講到到指定的記憶體區域中read(檔案識別符號,記憶體塊指標,記憶體塊長度); 返回值是實際讀取的長度,沒有讀取到資料返回0,錯誤

linux系統程式設計檔案I/O

一、檔案描述符              linux系統中,所有開啟的檔案都對應一個數字,這個數字由系統來分配,稱為檔案描述符。        PCB程序控制塊裡有檔案描述符表,以陣列形式存放於核心區。         一個程序預設開啟3個檔案描述符  STDIN_FILE

Unix程式設計檔案I/O操作檔案描述符

Unix系統中大多數檔案I/O需要用到以下五個函式:open,read,write,lseek以及close。這些函式通常被稱為不帶緩衝的I/O(這些函式都是在核心中執行,它們直接對核心快取區進行讀寫)。 檔案描述符 對於核心而言,所有開啟的檔案都通過檔案描述符引用,檔案描

Linux系統程式設計學習筆記(1)-檔案I/O操作

概述 在Linux系統下,通常以一個非負整數來代指一個開啟的檔案,這些檔案可以包括終端,socket,裝置,普通檔案等等。規定的三個標準的檔案描述符為0,1,2下面分別介紹(在互動式shell中,這些檔案描述符通常指向shell執行所在的終端): 檔案描述

系統程式設計——檔案I/O操作相關API

檔案I/O操作相關API 1.開啟一個檔案open(),既能開啟已存在的檔案,也能建立開啟一個新檔案 函式原型: #include <sys/stat.h> #include <fcntl.h> int open(const char *pathna

Linux學習檔案I/O操作

Linux將所有的硬體裝置也當作檔案來處理,因此,檔案輸入輸出也是對裝置進行操作的基礎。檔案的IO有兩種: (1) 非緩衝檔案操作:            這種操作方式便於對較小規模的檔案的讀寫和對實施行要求很高的裝置的資料進行通訊,這類操作是系統呼叫提供的;並且系統只提供

linux檔案I-O操作系統I-O

我們都知道linux下所有裝置都是以檔案存在的,所以當我們需要用到這些裝置的時候,首先就需要開啟它們,下面我們來詳細瞭解一下檔案I/O操作。 用到的檔案I/O有以下幾個操作:開啟檔案、讀檔案、寫檔案、關閉檔案等,對應用到的函式有:open、read、write、close、

Linux 之 POSIX 檔案 I/O 操作函式

(1)檔案描述符與檔案流轉換操作 /*成功返回檔案描述符,失敗返回-1*/ int fileno(FILE* stream); /*成功返回檔案流,失敗返回NULL*/ FILE* fdopen(int fd,char* mode); (2)修改檔案描

用C++實現簡單的檔案I/O操作

檔案 I/O 在C++中比烤蛋糕簡單多了。 在這篇文章裡,我會詳細解釋ASCII和二進位制檔案的輸入輸出的每個細節,值得注意的是,所有這些都是用C++完成的。 一、ASCII 輸出 為了使用下面的方法, 你必須包含標頭檔案<fstream.h>(譯者注:在標準C++中,已

Linux系統程式設計學習常見問題(一):VMware虛擬機器下Ubuntu18.04突然上不了網的問題解決方案

問題描述:VMware虛擬機器下Ubuntu18.04突然上不了網的問題:如下圖所示:   更改這裡的三種連線方式都是這樣  2.  分析:IP衝突或者配置出了問題,需重新更新設定。 3.  解決: (1)將模式調整為

Linux系統程式設計學習筆記

PDB的常用的除錯命令: 程式先寫完的情況的呼叫方式: 1、 python3  -m pdb test.py  #斷點的過程  b 7     ## 後面的數字是 行數  ## = 清楚斷點的

Unix環境高階程式設計檔案I/O

文章目錄 函式open和openat create函式 close函式 lseek函式 read函式 write函式 檔案共享 原子操作 dup和dup2函式 sync、fsync和fdatasync函式 fc

檔案 I/O操作open、lseek、read、write、close詳解

一,檔案描述符、套接字和管道        對於核心而言,所有開啟的開啟的檔案都通過檔案描述符引用。檔案描述符是一個非負整數。        核心為每個程序維護一個結構體struct task_struct,可稱為程序控制塊(PCB: Process Control Bloc

MATLAB檔案I/O操作——新建TXT並寫入資料

檔案I/O操作:新建文字文件,並存入資料1 2 3 4(三種格式)。 格式一: x=[1 2 3 4];%要存入的資料矩陣。 fp=fopen('A.txt','a');%'A.txt'為檔名;'a

Linux系統程式設計——系統呼叫之 I/O 操作檔案操作

一、檔案描述符 在 Linux 的世界裡,一切裝置皆檔案。我們可以系統呼叫中 I/O 的函式(I:input,輸入;O:output,輸出),對檔案進行相應的操作( open()、close()、write() 、read() 等)。 開啟現存檔案或新建檔案時,系統(核心

Linux系統檔案I/O程式設計(二)---檔案鎖函式

檔案鎖     上一節:http://blog.csdn.net/mybelief321/article/details/8989755講述的5個基本函式函式open()、read()、write()、lseek()和close()實現的檔案的開啟、讀/寫等操作,本節將討論

[溫故而知新] 《Linux/Unix系統程式設計手冊》——檔案I/O

本文對檔案IO這一塊做一些梳理,記錄思考的一些問題和一些待解決的問題,後續會繼續更新。 I hear and I forget,I see and I remember,I do and I understand. Part 1 :通用I

Linux系統檔案I/O程式設計(一)---open()等基本函式

Linux檔案I/O系統概述     虛擬檔案系統(VFS)     Linux系統成功的關鍵因素之一就是具有與其他作業系統和諧共存的能力。Linux系統的檔案系統由兩層結構構建:第一層是虛擬檔案系統(VFS),第二層是各種不同的具體的檔案系統。     VFS就是把各種具

Linux高階程式設計基礎——檔案系統程式設計操作檔案屬性

檔案系統程式設計之操作檔案屬性 /編寫程式實現以下功能: 1.新建檔案,設定檔案許可權遮蔽字為0; 2.建立該檔案的硬連結檔案,列印硬連結檔案的inode節點號和檔案大小; 3.建立該檔案的軟連結檔案,列印軟連結檔案的inode節點號和檔案大小; 列印軟連結檔案中的內容; 4.列印原始檔

Linux高階程式設計基礎——檔案系統程式設計檔案寫入操作

檔案系統程式設計之檔案寫入操作——實驗題 //編寫程式碼,完成以下功能: //1.建立檔案file1,寫入字串“abcdefghijklmn”; //2.建立檔案file2,寫入字串“ABCDEFGHIJKLMN”; //3.讀取file1中的內容,寫入file2,使file2中的字串內容為“a