#include "runner.h" #include "tier0/platform.h" #include "tier1/utlstring.h" #include "tier1/utlvector.h" #include "unistd.h" #include "sys/wait.h" int IRunner::Run(CUtlString szName, CUtlVector& args) { pid_t pid = fork(); if (pid < 0) Plat_FatalErrorFunc("Failed to fork"); /* child */ if (pid == 0) { CUtlVector execargs; execargs.AppendTail(szName); for (auto &arg: args) { execargs.AppendTail(arg); } execargs.AppendTail(0); execvp(szName, (char *const*)execargs.GetData()); } /* parent */ wait(NULL); return 0; } int IRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector& args) { } int IRunner::Run(CUtlString szName, CUtlString szDirectory, CUtlVector& args, CUtlVector& environment) { }