1.開啟檔案與關閉檔案
(1)linux中的檔案描述符fd的合法範圍是0或者乙個正正數,不可能是乙個負數。
(2)open返回的fd程式必須記錄好,以後向這個檔案的所有操作都要靠這個fd去對應這個檔案,最後關閉檔案時也需要fd去指定關閉這個檔案。如果在我們關閉檔案前fd丟掉了那就慘了,這個檔案沒法關閉了也沒法讀寫了。
2.實時查man手冊
(1)當我們寫應用程式時,很多api原型都不可能記得,所以要實時查詢,用man手冊
(2)man 1 xx查linux shell命令,man 2 ***查api, man 3 ***查庫函式
3.讀取檔案內容
(1)ssize_t read(int fd, void *buf, size_t count);
fd表示要讀取哪個檔案,fd一般由前面的open返回得到
buf是應用程式自己提供的一段記憶體緩衝區,用來儲存讀出的內容
count是我們要讀取的位元組數
返回值ssize_t型別是linux核心用typedef重定義的乙個型別(其實就是int),返回值表示成功讀取的位元組數。
3.1.3.4、向檔案中寫入
(1)寫入用write系統呼叫,write的原型和理解方法和read相似
(2)注意const在buf前面的作用,結合c語言高階專題中的輸入型引數和輸出型引數一節來理解。
(3)注意buf的指標型別為void,結合c語言高階專題中void型別含義的講解
#include #include #include #include #include #include int main(int argc,char *argv)
; char wbuf[20] = ;
int ret = -1;
fd = open("a.txt",o_rdwr);
if(-1 == fd ) //fd < 0
else
ret = write(fd,wbuf,strlen(wbuf));
if(ret < 0)
else
ret = read(fd,buf,30);
if(-1 == ret)
else
close(fd);
return 0;
}
(4)剛才寫入成功,然後讀出結果讀出是0(但是讀出成功了),這個問題的答案是因為write和read在使用時是從當前指標開始往後寫的,當上面write完後,檔案指標已經移動到了檔案末尾,所以在接下來的read操作時已經到最末尾了,就沒有位元組可讀。這時候需要使用lseek()來定位操作檔案指標置於檔案開頭。 IOS檔案的簡單讀寫例項詳解
ios檔案的簡單讀寫例項詳解 陣列 可變與不可變 和字典 可變與不可變 中元素物件的型別,必須是nsstring,nsarray,nsdictionary,nsdata,否則不能直接寫入檔案 pragma mark nsstring的寫程式設計客棧入與讀取 1 獲取路徑 nsstring docun...
C ini檔案讀寫 例項
ini檔案一般用於儲存當前執行的程式或者一些臨時的配置屬性的檔案。也有時用於儲存一定的資料以便於臨時或者配置上的需要。文字格式如下 section1 name 用 括起來,其包含多個key keyname1 value1 格式是 key value。keyname2 value2 section2 ...
C ini檔案讀寫 例項
ini檔案一般用於儲存當前執行的程式或者一些臨時的配置屬性的檔案。也有時用於儲存一定的資料以便於臨時或者配置上的需要。文字格式如下 section1 name 用 括起來,其包含多個key keyname1 value1 格式是 key value。keyname2 value2 section2 ...