unix 基礎知識(章節1)

2021-07-29 16:29:17 字數 1598 閱讀 9700

檔案描述符(file descriptor)通常是乙個小的非負整數,核心用以標識乙個特定程序正在訪問的檔案,在核心建立或者開啟乙個檔案時,都返回乙個檔案描述符。可以使用這個檔案描述符讀寫檔案。

如果不做特殊處理,這三個描述符都鏈結向終端

但大多數shell提供一種方法,使其中乙個或所有重新定向到某個檔案 如

ls>file.lis
在shell中,經常看到 「2>&1 」 等**

其中,數字代表

0: standard input (stdin)

1: standard output (stdout)

2: standard error output (stderr)

在標準情況下, 這些fd分別跟如下裝置關聯:

stdin(0): keyboard 鍵盤輸入,並返回在前端

stdout(1): monitor 正確返回值 輸出到前端

stderr(2): monitor 錯誤返回值 輸出到前端

「1>&2」 和 「2>&1」

1>&2 正確返回值傳遞給2輸出通道 &2表示2輸出通道

如果此處錯寫成 1>2, 就表示把1輸出重定向到檔案2中.

2>&1 錯誤返回值傳遞給1輸出通道, 同樣&1表示1輸出通道.

「1>」 可簡寫為 「>」

程序(program)是乙個儲存在磁碟上某個目錄中的可執行檔案。核心使用exec函式(7個之一),將程序讀入記憶體,病開始執行

程式執行的例項被稱為程序,某些作業系統用任務表示正在執行的程式。

3個主要函式: fork,exec,waitpid

使用者id:乙個數值,0為root使用者

組id:也是乙個數值 組檔案 /etc/group

使用 getuid() getgid()分別獲取使用者id和組id

訊號(signal)用於通知程序發生了某種情況。程序用以下3中處理訊號的方式

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)

日曆時間

系統基本資料型別time_t用於儲存時間值

程序時間

以滴答計算

使用 time 命令獲取任一程序的時鐘時間,使用者時間和系統時間

UNIX程式設計 1 基礎知識

1.登陸名 登陸名放在 etc passwd口令檔案中,口令檔案中的登陸項由7個以冒號分隔的字段組成,他們是 登陸名,加密口令,使用者id,使用者組id,注釋字段,起始目錄,shell程式 daemon x 2 2 daemon sbin sbin nologin 2.檔案和目錄 例 列出目錄中所有...

Unix 基礎知識

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

Unix基礎知識

gnu是gnu s not unix的縮寫,gnu nu nju 角馬的意思,模樣見下圖 gnu通用公共許可gpl general public license gpl是自由軟體 會發行的用於計算機軟體的協議證書,使用該證書的軟體被稱為自由軟體 free software 後來改名為開發源 軟體 o...