не помогло ((
Вот что интересно, создал другую программу, все что она делает, это вызывает пинг через system() и возвращает ответ. Так вот эта программа показывает 0, если ошибок нет или код ошибки, разные были 512,256,2 но -1 не было. Запускаю программу в которой у меня показывает -1, делаю такой же модуль с пингом, в самом начале из main вызывается ping() и возвращает -1!!! При любом раскладе -1, что за нафиг?! У кого есть знакомый экзорцист??
Пользователь решил продолжить мысль [time]09 Февраль 2016, 18:00:23[/time]:
Спасибо Вам огромное peregrine!!!!
Я бы сам еще долго думал что за хрень!!!
А хрень эта выглядит вот так "signal(SIGCHLD, SIG_IGN);", а system(), как я понял, юзает fork(). Ну блин ваще, 4 день бьюсь... СПАСИБО!
Глюк нашел, теперь нужно понять как совместно использовать signal(SIGCHLD, SIG_IGN); и system() ибо нужно и то и другое.
Пользователь решил продолжить мысль 09 Февраля 2016, 17:43:44:
Решение моей проблемы:
Для теста:
int system(string &cmd)
{
signal(SIGCHLD, SIG_DFL);
int rv(system(cmd.c_str()));
std::cout << cmd << " return "<< rv << "\n";
return rv;
}
Для работы:
int system(string &cmd)
{
signal(SIGCHLD, SIG_DFL);
return(system(cmd.c_str()));
}