#include <FileDescriptorHandler.h>
Definition at line 5 of file FileDescriptorHandler.h.
evf::FileDescriptorHandler::FileDescriptorHandler |
( |
| ) |
|
Definition at line 17 of file FileDescriptorHandler.cc.
References gather_cfg::cout, dir, i, mergeVDriftHistosByStation::name, path(), and evf::utils::pid.
21 pid_t
pid = ::getpid();
22 std::ostringstream ost;
23 ost <<
"/proc/" << pid <<
"/fd/";
24 DIR *
dir = opendir(ost.str().c_str());
27 std::vector<int> oldfds;
28 std::vector<int> newfds;
30 while((de = readdir(dir))!=0){
31 char *
name = de->d_name;
33 stat(path.c_str(),&buf);
34 if(S_ISSOCK(buf.st_mode)){
38 if(newfd>0) newfds.push_back(newfd);
39 else std::cout <<
"couldn't duplicate old fd " << fd << std::endl;
43 for(
unsigned int i = 0;
i < oldfds.size();
i++){
45 int newfd = dup2(newfds[
i],oldfds[i]);
46 if(newfd!=oldfds[
i])
std::cout <<
"couldn't duplicate new fd to old "
47 << oldfds[
i] << std::endl;