/* $Id$
This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
#include <iostream>
#include <sys/wait.h>
+#include <fcntl.h>
+#include <cstdlib>
+#include <cstring>
#include "misc.h"
using namespace std;
using namespace Msp;
-/**
-Runs a command and returns its output as a string. The exit status of the
-command is lost.
-*/
string run_command(const StringList &argv)
{
int pfd[2];
close(pfd[0]);
dup2(pfd[1], 1);
- dup2(pfd[1], 2);
+ close(pfd[1]);
+ int devnull=open("/dev/null", O_WRONLY);
+ dup2(devnull, 2);
+ close(devnull);
execvp(argv_[0], argv_);
::exit(1);
else
result.append(buf, len);
}
+ close(pfd[0]);
}
return result;