總結:
1、建立檔案的三種方式
①creat
函式:用於建立乙個檔案
②open
函式,o_creat
模式用於建立乙個檔案
2、比較read和
feof
同:可以判斷是否到了檔案尾(read函式:在檔案結束或者無資料的時候,返回為0;
feof
函式:返回非
0表示到了檔案尾)
異:read是不帶緩衝的,基於檔案描述符的
feof是帶緩衝的函式,基於檔案流的
3、write函式寫的時候,會出現哪些情況?
①所要寫的都已經寫進去
②寫進去的小於所需要寫的位元組數
③沒有寫進乙個位元組
④出現錯誤
4、程序和程式的區別和聯絡:
區別:①程序是動態的,而程式是靜態的
②程序是暫時的,而程式是長久的
③兩者的組成不同,程序包括程式資料和程序控制塊
聯絡:通過多次執行,乙個程式可對應多個程序;通過呼叫,乙個程序包括多個程序
5、有幾個函式對應的返回值為子程序的pid?
①fork函式
當fork函式返回值大於
0時,雖然表示的是父程序,但是返回的是子程序的
pid
②wait函式
當wait函式執行成功時,其返回值表示子程序的
pid
③waitpid
當waitpid函式執行成功時,返回的是子程序的
pid
6、fork函式和
vfork
函式的區別
fork函式建立的子程序把父程序的資源拷貝了乙份,父程序把所有的重新執行一遍
vfork函式建立的子程序和父程序共享資料空間,不是重新拷貝
7、快取和無快取的區別
不帶快取,不是直接對磁碟檔案進行讀取操作,像
read()
和write()
函式,它們都屬於系統呼叫,只不過在使用者層沒有快取,所以叫做無快取
io,但對於核心來說,還是進行了快取,只是使用者層看不到罷了。
帶快取io也叫標準
io,符合
ansi c
的標準io
處理,不依賴系統核心,所以移植性強
8、linux作業系統的優缺點?
優點:一是它屬於自由軟體,使用者不用支付任何費用就可以獲得它和它的源**,並且可以根據自己的需要對它進行必要的修改,無償對它使用,無約束地繼續傳播。另乙個原因是,它具有unix的全部功能,任何使用
unix
作業系統或想要學習
unix
作業系統的人都可以從
linux
中獲益。
缺點:①沒有unix
那樣的可擴充套件性 ②硬體支援的缺乏 ③
linux
在很多方面的都是存在風險的
9、fgetc,
getc
,getchar
異同點
異:fgetc:從讀取檔案流中讀取下乙個字元,並將其以無符號數返回,或者返回檔案末尾標誌或錯誤標誌
getc:直接把鍵盤輸入返回,每次輸入無需按回車,在讀取的時候會檢查檔案流
getchar:從流中獲得,鍵盤輸入會存在緩衝區中,以回車作為結束
同:他們如果讀取成功返回的是讀到的字元,並將字元轉換為無符號數或是檔案末尾,讀取失敗則返回錯誤值
帶快取IO和不帶快取IO
ssize t write int fd,const void buf,size t count 寫操作時,設每次寫入長度count 10個位元組,那麼你幾要呼叫10次這個函式才能把這個緩衝區寫滿,此時資料還是在緩衝區,並沒有寫入到磁碟,緩衝區滿時才進行實際上的io操作,把資料寫入到磁碟上,所以上面...
不帶快取的I O和標準 帶快取的 I O
ssize t write int fd,const void buf,size t count 寫操作時,設每次寫入長度count 10個位元組,那麼你幾要呼叫10次這個函式才能把這個緩衝區寫滿,此時資料還是在緩衝區,並沒有寫入到磁碟,緩衝區滿時才進行實際上的io操作,把資料寫入到磁碟上,所以上面...
linuxc不帶快取的檔案操作
系統呼叫 指作業系統提供給使用者程式呼叫的一組 特殊 介面,使用者程式可以通過這組介面來獲得作業系統核心提供的服務,例如使用者可以用來建立程序等。系統呼叫關係圖 從上圖可以看出系統將程式的執行空間分為了核心空間和使用者空間,通過api介面實現系統呼叫,目的是保護系統的核心。不帶快取的檔案i o操作 ...