编写C ++代码(linux OS) - 我有一个程序,我试图通过使用系统调用来执行另一个启动文件(ROS)。 代码:
int NodeletLauncher::startNode(std::string nodeName, std::string launchFile)
{
std::string command_call = " roslaunch " + nodeName + " " + launchFile + " &";
pid_t pid = fork();
switch (pid)
{
case -1: //error
ROS_ERROR_STREAM("Fork failed");
break;
case 0: //child process
ROS_INFO_STREAM("Starting node: " << nodeName);
system(command_call.c_str());
mProcList[nodeName] = getpid();
break;
default:
break;
}
return 0;
}
我可以运行它,但收到以下错误:
这是什么意思? 是否有更好的方法来启动程序,而不是使用系统调用&#39;&amp;&#39;在末尾? (添加&#39;&amp;&#39;为了不阻止父进程)。[错误] [1525469227.289615557]:无法修改FD epoll:没有这样的 文件或目录[错误] [1525469227.289675313]:无法删除FD epoll:没有这样的文件或目录
谢谢!