## Experimental Experimental — Experimental API. |

## Synopsis

    #define             cut_fork
    #define             cut_fork_get_stderr_message         (pid)
    #define             cut_fork_get_stdout_message         (pid)
    #define             cut_wait_process                    (pid,
                                                             usec_timeout)

## Description

This API may be changed in the future.

## Details

### cut_fork

    #define             cut_fork()

Makes child process.

e.g.:

    int pid;
    pid = cut_fork();
    cut_assert_errno();

    if (pid == 0) {
      do_something_for_child_process();
      _exit(EXIT_SUCCESS);
    }

    do_something_for_parent_process();

Returns : | Process ID.

Since 0.8

### cut_fork_get_stderr_message()

    #define             cut_fork_get_stderr_message(pid)

Reads a message from a process specified by `pid`.

e.g.:

    int pid;
    pid = cut_fork();
    cut_assert_errno();

    if (pid == 0) {
      g_print("I'm a child.");
      _exit(EXIT_SUCCESS);
    }

    cut_assert_equal_string("I'm a child.", cut_fork_get_stderr_message(pid));
    cut_assert_equal_int(EXIT_SUCCESS, cut_wait_process(pid, 100));

`pid` : | Process ID.
Returns : | a message read from stderr of a process specified by `pid`.

Since 0.8

### cut_fork_get_stdout_message()

    #define             cut_fork_get_stdout_message(pid)

Reads a message from a process specified by `pid`.

e.g.:

    int pid;
    pid = cut_fork();
    cut_assert_errno();

    if (pid == 0) {
      g_print("I'm a child.");
      _exit(EXIT_SUCCESS);
    }

    cut_assert_equal_string("I'm a child.", cut_fork_get_stdout_message(pid));
    cut_assert_equal_int(EXIT_SUCCESS, cut_wait_process(pid, 100));

`pid` : | Process ID.
Returns : | a message read from stdout of a process specified by `pid`.

Since 0.8

### cut_wait_process()

    #define             cut_wait_process(pid, usec_timeout)

Waits a process specified by `pid`.

e.g.:

    int pid;
    pid = cut_fork();
    cut_assert_errno();

    if (pid == 0) {
      do_something_for_child_process();
      _exit(EXIT_SUCCESS);
    }

    do_something_for_parent_process();
    cut_assert_equal_int(EXIT_SUCCESS, cut_wait_process(pid, 100));

`pid` : | Process ID to wait.
`usec_timeout` : | Timeout in usec.

Since 0.8