37 #include <sys/types.h> 
   70     std::size_t exec_file_pos = 
dbexec_.find_last_of(
"/\\");
 
   71     if (exec_file_pos != std::string::npos)
 
   73       char** argv = 
new char*[4];
 
   74       std::size_t exec_length = 1 + 
dbexec_.length() - exec_file_pos;
 
   75       argv[0] = 
new char[1 + exec_length];
 
   76       snprintf(argv[0], exec_length, 
"%s", 
dbexec_.substr(exec_file_pos + 1).c_str());
 
   78       argv[1] = 
new char[16];
 
   79       snprintf(argv[1], 15, 
"--dbpath");
 
   81       argv[2] = 
new char[1024];
 
   82       snprintf(argv[2], 1023, 
"%s", dirname.c_str());
 
   86       int code = execv(
dbexec_.c_str(), argv);
 
   91       ROS_ERROR_STREAM(
"execv() returned " << code << 
", errno=" << errno << 
" string errno = " << strerror(errno));