ACE ACE Process程序管理類

2021-08-10 21:36:39 字數 2801 閱讀 2759

ace的程序管理主要是使用process.h和process_manager.h這兩個檔案,process.h檔案中包含ace_process、ace_process_options兩個類,ace_process_options是對程序相關資訊的描述,包括程序名,引數、環境變數、工作目錄這幾個常見的引數。ace_process類主要是對程序的操作,包括生成、終止、訊號傳送等。

ace_process_options類的常用函式說明:

1、建構函式

ace_process_options (bool inherit_environment = true,

size_t command_line_buf_len = default_command_line_buf_len,

size_t env_buf_len = environment_buffer,

size_t max_env_args = max_environment_args,

size_t max_cmdline_args = max_command_line_options);

inherit_environment:是否繼承現有程序的環境

command_line_buf_len:command-line引數的最大允許長度,預設1024

env_buf_len:環境引數最大長度,預設16 * 1024

max_env_args:最大允許環境引數個數,512

max_cmdline_args:最大允許cmdline引數個數,128

2、設定工作目錄

void working_directory (const char *wd);
3、命令列執行引數

int command_line (const ace_tchar *format, ...);

int command_line (const ace_tchar * const argv);

第乙個引數以"\0"結尾,第二個參考argc的模式,以null結尾

4、程序名稱(使用中為程式執行的路徑)

void process_name (const ace_tchar *name);
5、獲取工作目錄

ace_tchar *working_directory (void);
6、獲取命令列(字串形式,以「\0」結尾)

ace_tchar *command_line_buf (size_t *max_len = 0);
7、獲取命令列(argv形式,以null結尾)

ace_tchar * const *command_line_argv (void);
ace_process類常用函式

1、根據options建立新的程序

virtual pid_t spawn (ace_process_options &options);
2、程序結束後需要呼叫的wait,如果不呼叫,會造成殭屍程序

pid_t wait (ace_exitcode *status = 0,

int wait_options = 0);

3、向程序傳送訊號

int kill (int signum = sigint);
4、結束程序,而不等待其正常終止

int terminate (void);
5、程式是否在執行,1:執行,0:未執行

int running (void) const;
6、獲取子程序返回值

int return_value (void) const;
說明:此類如果使用預設賦值函式,會造成淺拷貝問題,如果想賦值其他類變數,建議使用new類變數。

例程:

test.cpp

#include #include #include #include using namespace std;

int main()

{ ace::init();

ace_process_options apo;

//設定相關引數

apo.process_name("/home/dev/test/vfork/child/child");

apo.command_line("child -6");

apo.working_directory("/home/dev/test");

//獲取相關引數

cout

cout<

//呼叫wait,不呼叫的話會造成殭屍程序

在執行目錄生成檔案

子程序顯示的名稱中只顯示command line引數

父程序相關引數返回

程序特例 殭屍程序 孤兒程序 守護程序

殭屍程序 子程序結束,父程序尚未呼叫wait 子程序資源,子程序的pcb還殘留在核心,造成資源的浪費 孤兒程序 父程序先於子程序結束,子程序成為孤兒程序,子程序修改pcb使其父程序為init程序,孤兒程序結束後,由init程序負責 其pcb資源 守護程序 daemon process 是linux中...

程序 程序組

1.程序組 1 程序組,也稱之為作業,bsd與1980年前後向unix中增加的乙個新特性,代表乙個或多個程序的集合。每個程序都屬於乙個程序組,在waitpid函式和kill函式的引數中都曾經使用到,作業系統設計的程序組的概念,是為了簡化對多個程序的管理。當父程序建立子程序的時候,預設子程序與父程序屬...

程序建立,程序等待,程序終止

1 程序建立,2 程序等待,3 程序終止 程序建立被定義為通過父程序建立子程序的過程。fork函式 函式原型 pid t fork void 特點 1.fork函式呼叫一次,返回兩次兩次返回值得區別分別是子程序當中的返回值為0,父程序當中的返回值為新建子程序的id 將id返回給父程序的原因是沒有函式...