2014025654《嵌入式系統程序設計》第五周學習總結
1.fread
在文件被打開後,可對文件進行讀寫等操作,其中讀操作的函數為fread()
函數原型 size_t fread (voidptr,size_t size,size_t nmemb,FILEstream)
ptr:存放讀入記錄的緩沖區
size:讀取的記錄大小
nmemb:讀取的記錄數
stream:要讀取的文件流
函數返回值
成功:返回實際讀取的nmemb數目
失敗:EOF
fwrite
fwrite(0函數用於對確定的文件流進行寫操作。
函數原型 size_t fwrite (constptr,size_t size,size_t nmemb,FILE*stream)
ptr:存放寫入記錄的緩沖區
size:寫入的記錄大小
nmemb:寫入的記錄數
stream:要寫入的文件流
函數返回值
成功:返回實際讀取的nmemb數目
失敗:EOF
fwrite和fread用於讀寫記錄、用於二進制文件的術如何輸出。fwrite是按二進制寫入,所以寫入數據所占空間是根據數據類型來確定。fread讀取文件,可安全用於二進制文件。
exe()函數容易執行失敗,所以一定要加上錯誤判斷語句。
常見錯誤:
找不到文件或路徑
數組argv和envp沒有用NULL結束
沒有對應可執行文件的運行權限
exit: void exit(int status)
_exit: void _exit(int status)
exit()和_exit() 函數終止進程,執行操作時,進程停下剩下的操作。但是兩個函數略有不同,_exit()直接終止進程,exit()在終止進程前對目前文件的使用情況進行調查,把文件緩沖區的內容寫回文件。
waitpid函數使父進程阻塞,在linux中實現wait()函數調用的就是waitpid()函數。
waitpid函數de參數
pid>0時,只等待進程等於pid的子進程,不收其他進程的影響
pid=-1時,等待任何一個子進程
pid=0時,等待同一個進程組中的任何子進程
pid<-1時,由pid的絕對值絕對進程組
fork()函數是從已有的進程中再創建一個新進程,所創建的新進程是子進程,已有的進程為父進程。子進程再原進程中繼承了地址空間,子進程只有進程號和資源使用等。
2014025654《嵌入式系統程序設計》第五周學習總結