Unix/Linux 編程實(shí)踐教程 第一章小結(jié)
who 命令通過(guò)讀系統(tǒng)日志的內(nèi)容顯示當(dāng)前已經(jīng)登錄的用戶(hù)。
Unix 系統(tǒng)把數(shù)據(jù)存放在文件中,可以通過(guò)以下系統(tǒng)調(diào)用操作文件:
? open(filename, how) //打開(kāi)文件,返回文件描述符
creat(filename, mode) //存在就清空,沒(méi)有就創(chuàng)建
read(fd, buffer, amt) //讀取
write(fd, buffer, amt) //寫(xiě)
lseek(fd, distance, base) //移動(dòng)指針的位置
close(fd) //關(guān)閉文件
? 進(jìn)程對(duì)文件的讀/寫(xiě)都要通過(guò)文件描述符,文件描述符表示文件和進(jìn)程之間的連接。
? 每次系統(tǒng)調(diào)用都會(huì)導(dǎo)致用戶(hù)模式和內(nèi)核模式的切換以及執(zhí)行內(nèi)核代碼,所以減少程序中的系統(tǒng)調(diào)用發(fā)生的次數(shù)可以提高程序的運(yùn)行效率。
? 程序可以通過(guò)緩沖技術(shù)來(lái)減少系統(tǒng)調(diào)用的次數(shù),僅當(dāng)寫(xiě)緩沖區(qū)滿(mǎn)或讀緩沖區(qū)空時(shí)才調(diào)用內(nèi)核服務(wù)。
? Unix 內(nèi)核可以通過(guò)內(nèi)核緩沖來(lái)減少訪(fǎng)問(wèn)磁盤(pán)I/O的次數(shù)。
? Unix 中時(shí)間的處理方式是記錄從某一個(gè)時(shí)間開(kāi)始經(jīng)過(guò)的秒數(shù)。
? 當(dāng)系統(tǒng)調(diào)用出錯(cuò)時(shí)會(huì)把全局變量 errno 的值設(shè)為相應(yīng)的錯(cuò)誤代碼,然后返回 1 ,程序可以通過(guò)檢查 errno 來(lái)確定錯(cuò)誤的類(lèi)型,并采取相應(yīng)的措施。
? 這一章涉及的知識(shí)在系統(tǒng)中都可以找到,聯(lián)機(jī)幫助中有命令的說(shuō)明,有些還會(huì)攢及命令的實(shí)現(xiàn),頭文件中有結(jié)構(gòu)和系統(tǒng)常量的定義,還有函數(shù)原型的說(shuō)明。