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 檔案描述符 檔案描述符是乙個小的非負整數,核心用以標識乙個特定程序正在存訪的檔案。當核心開啟乙個現存盤案或建立乙個...