diff options
Diffstat (limited to 'src/process.cpp')
-rw-r--r-- | src/process.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/process.cpp b/src/process.cpp index 47c09c3..c5865cd 100644 --- a/src/process.cpp +++ b/src/process.cpp @@ -88,8 +88,8 @@ int Process::execLog(const int argc, char** argv) if ( pid == 0 ) { // child process close( fdpipe[0] ); - dup2( fdpipe[1], 1 ); - dup2( fdpipe[1], 2 ); + dup2( fdpipe[1], STDOUT_FILENO ); + dup2( fdpipe[1], STDERR_FILENO ); execv( m_app.c_str(), argv ); _exit( EXIT_FAILURE ); @@ -112,6 +112,7 @@ int Process::execLog(const int argc, char** argv) write( m_fdlog, readbuf, bytes ); } } + close( fdpipe[0] ); if ( wpval != pid ) { status = -1; @@ -174,8 +175,8 @@ int Process::execShellLog(const char* SHELL) if ( pid == 0 ) { // child process close( fdpipe[0] ); - dup2( fdpipe[1], 1 ); - dup2( fdpipe[1], 2 ); + dup2( fdpipe[1], STDOUT_FILENO ); + dup2( fdpipe[1], STDERR_FILENO ); execl( SHELL, SHELL, "-c", (m_app + " " + m_arguments).c_str(), NULL ); _exit( EXIT_FAILURE ); @@ -198,6 +199,7 @@ int Process::execShellLog(const char* SHELL) write( m_fdlog, readbuf, bytes ); } } + close( fdpipe[0] ); if ( wpval != pid ) { status = -1; |