檔案描述符(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...