Linux程序程式設計

2021-07-04 03:04:25 字數 2375 閱讀 6183

一、與程序相關的系統函式

1.getpid

#include/*提供pid_t型別的定義*/

#include/*提供函式的定義*/

pid_t getpid(void); /*返回值為當前程序的程序id*/

2.getppid

#include/*提供pid_t型別的定義*/

#include/*提供函式的定義*/

pid_getppid(void); /*返回當前程序的父程序的id*/

3.fork

作用:轉殖乙個程序。當乙個程序呼叫fork函式,完成後就出現兩個一模一樣的程序,由此得到乙個新的程序。

新產生的程序成為子程序,呼叫fork的程序成為父程序。

子程序拷貝父程序的資料段,**段,父子程序的執行次序不確定(就看哪個程序執行的塊)。

fork函式呼叫後,會返回兩個值:

在父程序中,fork返回新建立的子程序的id

在子程序中,fork返回0

出錯時,返回-1。

#include/*提供pid_t型別的定義*/

#include/*提供函式的定義*/

pid_t fork(void);

4.1exit

#include

void

exit(int status);

exit系統呼叫用來終止程序。帶有乙個整型的status引數,可以利用這個引數傳遞程序結束時的狀態。

如果status為0,表示正常結束,其他值表示出現了錯誤,程序非正常結束。

在實際程式設計中,可以利用wait系統呼叫接收子程序的返回值,從而針對不同的情況進行處理。

4.2 _exit

#include

void _exit(int status);

_exit函式作用簡單,直接使程序停止執行,清除使用的記憶體空間,銷毀其在核心中的各種資料結構。

與exit函式相比,exit對_exit作了包裝。exit呼叫時,會檢查檔案開啟情況,把檔案緩衝區內容寫回檔案,清理i/o緩衝區。

_exit不會處理i/o緩衝區。

eg:/*exit_test.c*/

#include

int main(void)

./exit_test

輸出;output begin

content in buffer

/*_exit_test.c*/

#include

int main(void)

./_exit_test

輸出;output begin

驗證結果:

_exit(0)執行時,未對標準i/o做處理,緩衝區裡的內容丟失。

管道,用於程序間的通訊。從管道的一端順序的寫入資料,從另一端順序地讀出資料。

讀寫位置都是自動增加的,資料讀一次之後就釋放。在緩衝區寫滿時,由相應規則控制讀寫程序進入等待佇列。

當空緩衝區有寫入資料或滿的緩衝區有資料讀出時,就喚醒等待佇列中的寫程序繼續讀寫。

管道兩端分別用描述子fd[0]和fd[1]來描述,管道兩端的任務劃分是固定的,fd[0]為讀端,fd[1]為寫端。不可混用。

管道的性質:

1.只支援單向資料流

2.只能用於有親緣關係的程序之間

3.無命名字

4.管道緩衝區有限(只存在於記憶體)

5.管道傳送的是無格式的位元組流,讀寫雙方必須事先約定好資料格式。

5.pipe

#include

int pipe(int fd[2]);

7.mknod

#include//資料型別標頭檔案

#include//函式標頭檔案

int mknod(char* pathname, mode_t mode, dev_t dev);

8.signal

#include

void (*signal(int signum, void(* handler)(int)));

9.kill

#include

int kill(pid_t pid, int sig);

向程序號為pid的程序傳送sig訊號。

/******************fork()*******************************/

#include

#include

#include

int main()

/******************end**********************************/

執行程式後,得到的結果,操作環境fedora 14 核心2.6

Linux 程序程式設計

程序程式設計 1 getpid 函式的作用 獲取程序的識別碼 程序號 函式的原型 pid t getpid void 返回值 目前程序的程序號 標頭檔案 include 2 fork 函式的作用 建立乙個程序 函式的原型 pid t fork void 函式的返回值 0 出錯 0 表示當前建立的是子...

Linux 程序程式設計

特點 wait waitpid 殭屍程序 特點 pid t waitpid pid t pid,int status,options 使用pipe 使用方便 兩個程序中,其中乙個程序讀取管道 使用pipe函式構建父子關係,呼叫ls l grep a.out demo c int main int i...

Linux程序程式設計

程序是作業系統中最基本 最重要的概念,可以說程序是作業系統結構的基礎。作業系統上任何程式的執行都離不開程序。1.程序的概念 傳統的程式本是一組指令的集合,是乙個靜態實體,無法描述程式在記憶體中的執 況,也就不能如實反映程式併發執行過程的特徵,為了深刻描述程式動態執行過程的性質,人們就引入了 程序 的...