Невозможно изменить FD epoll: нет такого файла или каталога - PullRequest
0 голосов
/ 05 мая 2018

Написание кода на C ++ (ОС Linux) - у меня есть программа, в которой я пытаюсь выполнить другой файл запуска (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;
}

Я могу запустить его, но получаю следующую ошибку:

[ОШИБКА] [1525469227.289615557]: невозможно изменить FD epoll: нет такого файл или каталог [ОШИБКА] [1525469227.289675313]: невозможно удалить FD на epoll: нет такого файла или каталога

что это значит? Есть ли лучший способ запустить программу, не используя системный вызов с '&' в конце? (добавьте '&', чтобы не блокировать родительский процесс).

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...