Linux系統程式設計一(程式 程序和執行緒)

2021-09-24 00:23:26 字數 1859 閱讀 4081

ln hello.c hello2.c //通過ln來建立hello.c的硬鏈結檔案hello2.c

只有檔案才可以建立硬鏈結,刪除其中乙個硬鏈結檔案時,別的檔案還是可以檢視,當修改互為硬鏈結的檔案時,所有檔案同時更新

ln -s //建立軟鏈結

目錄可以建立軟鏈結

段名

組成**

**段.text

可執行檔案

資料段.data bss

可執行檔案

堆疊段heap stack請求

變數位置

經過初始化的全域性變數和靜態變數

.data

未經過初始化的全域性變數和靜態變數

.bss

函式內部宣告的區域性變數

.stack

const修飾的全域性變數

.txet

const修飾的區域性變數

.stack

字串常量

.text

。bss是存放在程式中未初始化的全域性變數和靜態變數,程式執行之前bss段會自動清0

ps -aux //檢視程序

pstree //以樹狀圖結構顯示出程序 yum install psmisc

top //實時顯示系統各程序的資源占用

kill pid //殺死程序

併發------>單核,程序同時存在或者交錯進行

並行------>多核,兩種程序同時進行

程序執行exec()函式系列

由於是系統函式,所以標頭檔案應該加上

函式原型是

int

execv

(const

char

*path,

char

*const ar**)

;

execv返回值

-1---->失敗

不返回---->成功

system函式原型

#include

intsystem

(const

char

*command)

;

//本質是shell執行命令

結束程序 暫停

#include

int pause()

返回值是1

等待pid_t wait(int *status)等價於pid_t waitpid(-1,status,0)

函式原型

pid_t waitpid

(pid_t pid,

int* status,

int options)

;

引數說明

引數含義

說明pid

等待的程序

0:程序為pid的子程序

status

子程序結束狀態

判斷正常使用:wifexited(status);判斷異常使用:wifsignaled(status);判斷暫停使用:wifstopped(status);

optionns

選項wnohang若子程序沒有結束,返回0,不予等待;若子程序結束,返回該子程序的id。wuntraced若子程序進入暫停狀態,則馬上返回,單子程序的結束狀態不予理會

Linux系統程式設計 程序(一)

目錄 一 什麼是程序 二 程序的 生老病死 三 程序相關函式 當elf格式的可執行程式被執行的時候,程式被載入到記憶體中執行,此時核心產生了乙個名為task struct 的結構體來表示與管理這個程序。其中 一般流程為 父程序呼叫fork函式,生成子程序 使用fork產生的子程序與父程序一模一樣,並...

linux系統程式設計之程序(一) 程序與程式

mickole 出處 本節目標 一,什麼是程式?程式是完成特定任務的一系列指令集合 二,什麼是程序?三,程序資料結構 程序的靜態描述 由三部分組成 pcb 有關程式段和該程式段對其進行操作的資料結構集。程序控制塊 pcb 用於描述程序情況及控制程序執行所需的全部資訊,是作業系統用來感知進存在的乙個重...

linux系統程式設計之程序(一) 程序與程式

本節目標 一,什麼是程式?程式是完成特定任務的一系列指令集合 二,什麼是程序?三,程序資料結構 程序的靜態描述 由三部分組成 pcb 有關程式段和該程式段對其進行操作的資料結構集。程序控制塊 pcb 用於描述程序情況及控制程序執行所需的全部資訊,是作業系統用來感知進存在的乙個重要資料結構。段 是程序...