IProcess
An interface to create new child processes, kill processes and inspect the existance of a process.
Each static function has a class IInstanceLog * const log pointer, which is used for instance related
logs dependent of the log flag LOG_PROCESS.
File information
File | common/interface/process.h
|
Classes |
IProcess
|
Classes
IProcess
class IProcess {
public:
static int Spawn(const char *filename, int argc, char ** argv, class IInstanceLog * const log);
static int Kill(int pid, int signalNr, class IInstanceLog * const log);
static bool ProcessExist(int pid, class IInstanceLog * const log);
static int GetOwnPID(class IInstanceLog * const log);
static int GetParentPID(class IInstanceLog * const log);
static bool SetProcessGroupID(int pid, int pgid, class IInstanceLog * const log);
static void GetOwnName(char * buffer, size_t len, class IInstanceLog * const log);
static int System(class IInstanceLog * const log, const char * command, ...);
};
Public static functions
int Spawn(const char *filename, int argc, char ** argv, class IInstanceLog * const log)
Spawns a new child process based on the filename and the set of arguments determined by char **argv.
Parameters
const char * filename | The actual command which will be executed. |
int argc | The number of arguments. |
char ** argv | An array of char * arguments. Note that the first argument is the process filename itself again. |
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
Return value
On success it returns the process id of the spawned process, otherwise 0 is returned.
int Kill(int pid, int signalNr, class IInstanceLog * const log)
Sends the specified kill code to a process.
Parameters
int pid | The process PID. |
int signalNr | The signal number, e.g. 9 (SIG_KILL). |
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
Return value
If the kill is successful 1 is returned; otherwise 0 is returned (int).
bool ProcessExist(int pid, class IInstanceLog * const log)
Checks if a process still exists or not.
Parameters
int pid | The process PID. |
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
Return value
true if the process still exists, otherwise false.
int GetOwnPID(class IInstanceLog * const log)
Returns the own process ID.
Parameters
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
Return value
The process ID (int).
int GetParentPID(class IInstanceLog * const log)
Returns the parent process ID from the own process.
Parameters
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
Return value
The parent process ID (int).
bool SetProcessGroupID(int pid, int pgid, class IInstanceLog * const log)
Sets the process group ID of the specified process.
Parameters
int pid | The process PID. |
int pgid | The group ID. |
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
Return value
Returns true on success, otherwise false.
void GetOwnName(char * buffer, size_t len, class IInstanceLog * const log)
Writes the own process name to the given buffer.
Parameters
char * buffer | The buffer in which the name will be written. |
size_t len | The size of the buffer. |
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
int System(class IInstanceLog * const log, const char * command, ...)
Makes use of the standard system function and runs the specified command.
Parameters
class IInstanceLog * const log | The IInstanceLog instance which is to be used. |
const char * command | The command to run (e.g. "date -s \"1970-01-02 01:01:00\""). |
... | Parameters which are used inside command (e.g. %s etc.). The internally used buffer length is 1024 bytes! |
Return value
The exit code of the system call (int).