UNIX程式設計 1 基礎知識

2021-08-31 12:42:18 字數 2608 閱讀 4693

1.登陸名

登陸名放在/etc/passwd口令檔案中,口令檔案中的登陸項由7個以冒號分隔的字段組成,他們是:登陸名,加密口令,使用者id,使用者組id,注釋字段,起始目錄,shell程式

daemon:x:2:2:daemon:/sbin:/sbin/nologin

2.檔案和目錄

例:列出目錄中所有的檔案

#include "apue.h"

#include

intmain(int argc, char *argv)

3.輸入和輸出

1)檔案描述符

通常是乙個小的非負整數,核心用它標識乙個特定程序正在訪問的檔案。每當執行乙個新的程式時,所有的shell都為其開啟三個檔案描述符:標準輸入,標準輸出,標準出錯

2)不用緩衝的io

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

#include "apue.h"

#define buffsize 4096

intmain(void)

3)標準io

標準io函式提供一種對不用緩衝io函式的帶緩衝的藉口

例:用標準io將標準輸入複製到標準輸出

#include "apue.h"

intmain(void)

4.程序和執行緒

unix系統確保每個程序都有乙個唯一的數字識別符號,稱為程序id

例:列印程序id

#include "apue.h"

intmain(void)

有三個用於程序控制的主要函式:fork,exec, waitpid

例:從標準輸入讀命令並執行

#include "apue.h"

#include

intmain(void)

else if (pid == 0)

/* parent */

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

err_sys("waitpid error");

printf("%% ");

}exit(0);

}

5.出錯處理

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

有兩個函式幫助列印出錯資訊:

1)將errno對映為出錯資訊字串

#include

char *strerror(int errnum);

2)基於當前errno值,在標準出錯上產生一條出錯資訊,它首先輸出由msg指向的字串,然後是乙個冒號,乙個空格,接著是對應於errno值的出錯資訊,最後是乙個換行符

#include

void perror(const char *msg);

例:strerror和perror的用法

#include "apue.h"

#include

intmain(int argc, char *argv)

6.使用者標識

使用者標識有使用者id,組id,附加組id

例:列印使用者id和組id

#include "apue.h"

intmain(void)

7.訊號

訊號是通知程序已發生某種情況的一種技術,程序如何處理訊號有三種選擇

1)忽略該訊號

2)按系統預設的方式處理

3)提供乙個函式處理

例:從標準輸入讀命令並執行

#include "apue.h"

#include

static void sig_int(int); /* our signal-catching function */

intmain(void)

else if (pid == 0)

/* parent */

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

err_sys("waitpid error");

printf("%% ");

}exit(0);

}void

sig_int(int signo)

8.時間值

日曆時間,從1970-01-01 00:00:00所經的秒數累計值,以time_t儲存這種值。

程序時間,也稱為cpu時間,用以度量程序使用的cpu資源,用clock_t儲存這種值,unix系統使用三個程序時間值:時鐘時間,使用者cpu時間,系統cpu時間

9.系統呼叫和庫函式

unix提供定義明確,數量有限,可直接進入核心的入口點,這些入口點稱為系統呼叫。庫函式並不是核心的入口點。unix為每個系統呼叫在標準c庫中設定乙個具有同樣名字的函式。

unix 基礎知識(章節1)

檔案描述符 file descriptor 通常是乙個小的非負整數,核心用以標識乙個特定程序正在訪問的檔案,在核心建立或者開啟乙個檔案時,都返回乙個檔案描述符。可以使用這個檔案描述符讀寫檔案。如果不做特殊處理,這三個描述符都鏈結向終端 但大多數shell提供一種方法,使其中乙個或所有重新定向到某個檔...

《UNIX環境高階程式設計》 UNIX基礎知識

一 unix體系結構 1 unix系統的體系結構 p1 圖1 1 2 核心的介面被稱為系統呼叫。公用函式構建在系統呼叫介面之上,應用程式即可食用公用函式庫,也可使用系統呼叫。二 登入 1 口令檔案 etc paaswd由7個冒號分隔的字段組成,依次是 登入名 加密口令 數字使用者id 數字組id 注...

Unix 基礎知識

一 引言 所有作業系統都向它們執行的程式提供服務。典型的服務有執行新程式 開啟檔案 讀檔案 分配儲存區 獲取當前時間等 二 登入 登入名 shell 三 檔案和目錄 四 輸入和輸出 1 檔案描述符 檔案描述符是乙個小的非負整數,核心用以標識乙個特定程序正在存訪的檔案。當核心開啟乙個現存盤案或建立乙個...