Lumino
ln::Process Class Reference

外部プロセスを起動し、通信を行うクラスです。 More...

#include <Process.hpp>

Inheritance diagram for ln::Process:
ln::RefObject

Public Member Functions

void setWorkingDirectory (const Path &directoryPath)
 開始するプロセスの作業ディレクトリを指定します。 (規定値:現在のカレントディレクトリ) More...
 
void start ()
 プログラムのファイルパスとコマンドライン引数を指定してプロセスを起動します。 More...
 
bool wait (int timeoutMilliseconds=-1)
 プロセスの終了を待機します。 More...
 
ProcessStatus status ()
 プロセスの状態を取得します。 More...
 
int exitCode ()
 プロセスの終了コードを取得します。 More...
 

Static Public Member Functions

static int execute (const Path &program, const List< String > &args=List< String >(), String *outStdOutput=nullptr, String *outStdError=nullptr)
 プロセスを起動し、終了するまで待機します。 More...
 

Additional Inherited Members

- Protected Member Functions inherited from ln::RefObject
virtual void finalize ()
 参照がなくなり、オブジェクトが削除されようとしているときに呼び出されます。実装コードでは仮想関数を呼び出すことができます。主にデストラクタの制限を回避するために使用します。
 

Detailed Description

外部プロセスを起動し、通信を行うクラスです。

プロセスを起動し、終了を待つ

Process proc;
proc.Start("merge", "file1.c", "file2.c");
proc.WaitForExit();

Member Function Documentation

◆ execute()

static int ln::Process::execute ( const Path program,
const List< String > &  args = ListString >(),
String outStdOutput = nullptr,
String outStdError = nullptr 
)
static

プロセスを起動し、終了するまで待機します。

Parameters
[in]program: プログラム名または実行ファイルパス
[in]args: コマンドライン引数
[out]outStdOutput: 標準出力をリダイレクトし文字列として受け取る場合、その文字列を格納する変数のポインタを指定する
[out]outStdError: 標準エラー出力をリダイレクトし文字列として受け取る場合、その文字列を格納する変数のポインタを指定する
Returns
プロセスの終了コード

◆ exitCode()

int ln::Process::exitCode ( )

プロセスの終了コードを取得します。

GetState() が ProcessStatus::Finished を返さない限り、戻り値は有効ではありません。

◆ setWorkingDirectory()

void ln::Process::setWorkingDirectory ( const Path directoryPath)
inline

開始するプロセスの作業ディレクトリを指定します。 (規定値:現在のカレントディレクトリ)

Start() の前に設定する必要があります。

◆ start()

void ln::Process::start ( )

プログラムのファイルパスとコマンドライン引数を指定してプロセスを起動します。

Exceptions
FileNotFoundExceptionprogram が見つからなかった。

◆ status()

ProcessStatus ln::Process::status ( )

プロセスの状態を取得します。

Attention
リダイレクトを非同期で行っている場合、ProcessStatus::Finished を返してもまだリダイレクトスレッドは終了していないことがあります。 完了させるには WaitForExit() を呼び出してください。

◆ wait()

bool ln::Process::wait ( int  timeoutMilliseconds = -1)

プロセスの終了を待機します。

Parameters
[in]timeoutMilliseconds: タイムアウト時間 (ミリ秒)
Returns
true:正常終了 false:タイムアウトした

The documentation for this class was generated from the following file: