Породження процесі, як подано в лістінгу 6, можливе за допомогою функцій, які викликаються із функції mane ().
// Лістінг 6. Основна гілка програми, з якої викликається функція,
// що породжує процес
int main (int argc, char *argv [ ]) {
// . . .
Rt = func1 (X, Y, Z );
// . . . }
// Визначення функції.
int func1 (char *M, char *N, char *V) {
// . . .
char *const args [ ] = {“TaskX”, M, N, V, NULL};
Pid = fork ();
if (Pid = = 0) {
exec ({“TaskX”, args); }
if (Pid > 0) {
// . . . }
wait (&stat); }
В лістінгу 6. функція func1 викликається з трьома аргументами. Ці аргументи передаються породженому процесу.
Процеси також можуть породжуватися із методів, які належать об’єктам. Як подано в лістінгу 7, об’єкти можна оголосити в довільному процесі.
// Лістінг 7. Оголошення об’єкту в процесі
// . . .
my_object MyObject;
// . . .
// Оголошення та визначення класу.
class my_object {
public:
// . . .
int spawnProcess (int X);
// . . . };
int my_object :: spawnProcess (int X) {
// . . .
// . . . posix_spawn () або system ()
// . . . }
Як подано в лістінгу 7, об’єкт може створювати довільну кількість процесів з довільного методу.