- dup2(nullfd, STDIN_FILENO);
- dup2(nullfd, STDOUT_FILENO);
- dup2(nullfd, STDERR_FILENO);
- execvp(cArgs[0], (char**) &cArgs[0]);
- _error->WarningE("dpkgGo", "Can't detect if dpkg supports multi-arch!");
- _exit(2);
+ if (inputFd == nullptr)
+ dup2(nullfd, STDIN_FILENO);
+ else
+ {
+ close(external[1]);
+ dup2(external[0], STDIN_FILENO);
+ }
+ if (outputFd == nullptr)
+ dup2(nullfd, STDOUT_FILENO);
+ else
+ {
+ close(external[0]);
+ dup2(external[1], STDOUT_FILENO);
+ }
+ if (DiscardOutput == true)
+ dup2(nullfd, STDERR_FILENO);
+ debSystem::DpkgChrootDirectory();
+ execvp(Args[0], (char**) &Args[0]);
+ _error->WarningE("dpkg", "Can't execute dpkg!");
+ _exit(100);