程序相關API

2021-10-18 15:51:53 字數 2165 閱讀 4937

示例**

#

include

#include

#include

intmain()

else

if(pid==0)

return0;

}

#

include

#include

#include

intmain()

else

if(pid==0)

printf

("%d\n"

,data)

;return0;

}

執行結果

return fork:57080

57079

10return fork:0

57080

110父程序建立子程序後,由於子程序是父程序的副本,所以在子程序中修改data的值並不影響父程序中的data。

函式原型:

intwait

(int

* wstatus)

;wait函式會將子程序的退出狀態記錄在status中,

使用wexitstatus

(wstatus)巨集來解析wstatus的值

引數

功能wnohang

若pid指定的子程序沒有結束,則waitpid()函式返回0,不予以等待。若結束,則返回該子程序的id。

wuntraced

若子程序進入暫停狀態,則馬上返回,但子程序的結束狀態不予以理會。

wcontinued

將呼叫此函式的程序掛起,等待乙個程序的終止或乙個結束的程序收到sigcont訊號時重新開始執行。

以execl為例:

#

include

#include

#include

intmain()

printf

("after execl!\n");

return0;

}

#include

intmain()

execvp:

#

include

#include

#include

intmain()

;printf

("before execl\n");

if(execvp

("pwd"

,ar**)==-

1)printf

("after execl!\n");

return0;

}

函式原始碼:

int

system

(const

char

* cmdstring)if(

(pid =

fork()

)<0)

else

if(pid ==0)

else}}

return status;

}

file *

popen

(const

char

* command ,

const

char

* type )

;int

pclose

( file * stream );//用來關閉開啟的stream流;

示例**:

#

include

#include

#include

#include

#define

bufsize

128int

main()

// 關閉檔案流

pclose

(read_fp)

;pclose

(write_fp)

;exit

(exit_success);}

exit

(exit_failure)

;}

程序相關API

1 每個程序都有一張私有的控制代碼表,系統有一張全域性控制代碼表 2 程序id在所有程序都有意義 演示 3 此 開啟乙個軟體,並列印程序id和控制代碼 include stdafx.h include windows.h 開啟子程序函式 bool createprocess ptchar route...

LINUX系統程序相關的API

在linux系統下可以用ps指令來檢視系統的程序 在實際工作中經常使用 ps aux gep 程式名,就可以檢視目標程式的程序。也可以用top指令檢視,相當於windows系統下的任務管理器。每個程序都有自己的程序 用getpid函式可以獲取當前經常的程序號 include include incl...

Win32 程序相關的API

開啟程序控制代碼 通過程序id 開啟模組控制代碼 基址 根據程序控制代碼 模組名 獲取模組的檔案全路徑 根據程序控制代碼 模組控制代碼 獲取模組的檔名 根據程序控制代碼 模組控制代碼 獲取模組的映象大小 入口位址 通過程序控制代碼 模組起始位址 讀取程序的記憶體 獲取程序的所有模組的控制代碼 inc...