Chapter 1 Unix基礎知識

來源:互聯網
上載者:User

以下僅列出相對比較重要的內容

1.檔案和目錄

1).檔案系統

    Unix檔案系統是目錄和檔案組成的一種階層。目錄是一個包含許多目錄項的檔案,而邏輯上,可以認為每個目錄項都包含著檔案名稱。檔案屬性是指檔案類型(是普通檔案還是目錄)、檔案的大小、檔案的所有者、檔案許可權以及檔案的修改時間等等。如擷取相應資訊可以用stat和fstat函數

2).檔案名稱

3).路徑名

    由斜線和檔案名稱組成的序列構成路徑名,以斜線開頭的路徑名稱為絕對路徑名,否則為相對路徑名。註:檔案根系統的名字(/)是個特殊的絕對路徑,不含檔案名稱

4).工作目錄

    每一個進程都有一個工作目錄(又稱當前工作目錄),所有絕對路徑名都從工作目錄開始

 

2.輸入和輸出

1).檔案描述符

檔案描述符通常是一個小的非負整數,核心用它標識一個特定進程正在訪問的檔案

2).標準輸入、標準輸出和標準標準出錯

當運行一個新程式,所有shell都為其開啟三個檔案描述符標準輸入、標準輸出和標準標準出錯

 

3.程式與進程

1).進程式控制制

對於進程式控制制,一般由三個主要函數:fork,exec和waitpid(其中exec有六種變體)。

2).線程ID和線程

線程ID與進程ID有相同的作用,但線程ID只在他所屬進程內起作用

在一個進程內的所有線程共用同一地址空間、檔案描述符、棧以及與進程相關的屬性,因為各個線程會訪問同一資源,所以要進行線程同步。

 

4.出錯處理

當Unix出錯時,常常返回一個負值,而且整型變數errorn通常被設定為含有附加資訊的一個值,註:在多線程環境中,多個線程共用進程地址空間,每個線程都有屬於它自己的局部errorn以避免一個線程幹擾另一個線程

C標準有兩個函數可以列印出errorn資訊

 

#include <string.h>char *strerror(int errnum);//返回指向錯誤資訊字串的指標
#include <stdio.h>void perror(const char *msg);//在標準輸出上產生一條錯誤資訊

 

5.使用者標識

1).使用者ID 

2).組ID

3).附加組ID(一個使用者可以屬於多個組中)

 

6.訊號

  用來通知進程有情況發生的一種技術。進程收到訊號後有三種選擇1).忽略   2).預設處理方法   3).提供一個函數當訊號發生時調用(訊號捕捉)。

 

7.時間值

Unix有兩種不同的時間值

1).日曆時間  用資料類型time_t ,記錄著最近一次的修改時間

2).進程時間  用資料類型clock_t,度量進程使用的中央處理機資源

 

度量一個進程的時間,Unix使用三個進程時間值:

1).時鐘時間 (牆上時鐘時間)    它是進程已耗用時間的總量,值與系統同時啟動並執行進程數有關

2).使用者CPU時間    執行使用者指令的時間

3).系統CPU時間    該進程實行核心程式所經曆的時間

 

8.系統調用和庫函數

  系統調用是在核心空間中運行。庫函數封裝了系統調用,運行在使用者空間。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.