aboutsummaryrefslogtreecommitdiff
path: root/include/Process.hpp
blob: 40373b5e09e03e3740b86c9b4c3a71053f70efd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once

#include <sys/types.h>
#include <string>

namespace gsr {
    enum class GsrMode {
        Replay,
        Record,
        Stream,
        Unknown
    };

    // Arguments ending with NULL
    bool exec_program_daemonized(const char **args);
    // Arguments ending with NULL. |read_fd| can be NULL
    pid_t exec_program(const char **args, int *read_fd);
    // Arguments ending with NULL. Returns the exit status of the program or -1 on error
    int exec_program_get_stdout(const char **args, std::string &result);
    // |output_buffer| should be at least PATH_MAX in size
    bool read_cmdline_arg0(const char *filepath, char *output_buffer);
}