第一章 UNIX基礎知識

2021-06-26 05:45:20 字數 2095 閱讀 7031

unix體系結構:

核心的介面稱為系統呼叫,公用函式庫構建在系統呼叫介面之上,應用軟體既可以呼叫公用函式庫,也可以呼叫系統呼叫。shell是一種特殊的應用程式,它為執行其他應用程式提供了乙個介面。

列出乙個目錄中所有的檔案

#include "apue.h"

#include

int

main(int argc, char *argv)

1.輸入和輸出

檔案描述符通常是乙個小的非負整數,核心用它標識乙個特定程序正在訪問的檔案。當核心開啟乙個已有檔案和新檔案時,它返回乙個檔案描述符。在讀寫檔案時,就可以使用它。

2.標準輸入,輸出和出錯(略)

3.不用緩衝的io:函式open,read,write,lseek以及close提供了不用緩衝的io。這些函式都使用檔案描述符

eg:將標準輸入複製到標準輸出

#include "apue.h"
#define buffsize    4096
int

main(void)

說明:stdin_fileno,stdout_fileno在unistd.h中, 

可以複製任意普通的檔案。

eg:將標準輸入複製到標準輸出2

int main(void)

說明: stdout, stdin ,eof在標頭檔案 stdio.h中
程式和程序:
1.程式:程式是存放在磁碟上,處於目錄中的乙個可執行檔案。使用 6個exec函式中的乙個由核心將程式讀入儲存器,並執行。
2.程序.(略)
3.程序控制:
三個程序控制主要函式:fork,exec 和 waitpid。
eg:從標準輸入讀入命令並執行。
#include "apue.h"

#include

int

main(void)

else if (pid == 0)

/* parent */

if ((pid = waitpid(pid, &status, 0)) < 0)

err_sys("waitpid error");

printf("%% ");

}exit(0);

}

4.執行緒和執行緒id(略)

5.出錯處理:

當unix函式出錯時,常常返回乙個負值,而且整型變數errno通常被設定為含有附加資訊的乙個值。

對於errno應當知道兩條規則:第一條規則:如果沒有出錯,則其值不會被乙個例程清除。因此,僅當函式的返回值指明出錯時,才檢驗其值。 第二條是:任一函式都不會將errno值設定為0,在中定義的所有常量都不為0.

c標準定義了兩個函式,它們幫助列印出錯資訊

#include

char * strerror(int errnum);  返回值:指向訊息字串的指標

perror函式基於errno的當前值,在標準出錯上產生一條出錯資訊,然後返回

#include

void perror(const char * msg)

它首先輸出由msg指向的字串,然後是乙個冒號,乙個空格,緊接著是對應於errno值的出錯的資訊,最後是乙個換行符。

eg:#include "apue.h"

#include

int main(int argc, char *argv)

6.使用者識別符號

#include "apue.h"

int main(void)

7.訊號

當向乙個程序傳送訊號時,我們必須是該程序的所有者超級使用者

8 時間值

長期以來,linux有兩種不同的時間值

當度量乙個程序的執行時間,unix系統使用三個程序時間值:時鐘時間 使用者cpu時間 系統cpu時間

9.系統呼叫和庫函式區別和聯絡(略)

重學UNP 第一章UNIX基礎知識

我們可以將作業系統定義為一種軟體,它控制計算機的硬體資源,提供程式的執行環境,通常將這種軟體叫做核心 核心的介面被稱為系統呼叫 作業系統包括核心和一些其他軟體 系統實用程式,應用程式,shell,及公共函式庫等 檔案描述符 通常是乙個小的非負整數,核心用以標識乙個程序正在訪問的檔案。標準輸入,標準輸...

APUE筆記 第一章 UNIX基礎知識

檔案描述符是乙個小的非負整數,核心用以標識乙個待定程序正在存訪的檔案。當核心開啟乙個現存盤案或建立乙個新檔案時,它就返回乙個檔案描述符。當讀 寫檔案時,就可以使用它。函式open read write lseek以及close提供了不用快取的i o。這些函式都用檔案描述符進行工作。標準i o函式提供...

UNIX基礎知識 《APUE》第一章筆記

核心 可將作業系統定義為一種軟體,它控制計算機硬體資源,提供程式執行環境。一般而言,我們稱這種軟體為核心 kernel 它相對較小,位於環境的中心。unix系統呼叫 核心,系統呼叫 shell,庫函式 應用軟體 最下層是核心,最上層是應用軟體 shell shell是一種特殊的應用程式,它為執行其他...