无法从程序执行ping

时间:2014-05-08 16:46:20

标签: c++ linux process fork ping

我正在尝试在我的程序中执行ping命令。我正在研究RaspBerry Pi B模型上最新的Raspian。它告诉我: /bin/sh-c: 0: Can't open ping -c 1 192.168.0.12 我的代码(它没有完成喷射,我知道以下代码可能有一些问题):

int status;
pid_t pid;
pid = fork();
const char* commandChar = commandName.c_str();
if(pid == 0)
{
    execl(SHELL, SHELL "-c", commandChar, NULL);
    _exit(1);
}else if(pid < 0)
{
    return false;
}
commandChar = NULL;
    delete commandChar;
return true;

Ping (/bin/ping)拥有rwsr-xr-x权限,那么为什么我无法执行它以及如何使其工作?

enter image description here

1 个答案:

答案 0 :(得分:2)

execl需要一个文件路径,你给它的文件路径&#34; / bin / ping -c 192.168.0.12&#34;,这当然不存在。查看man page for execl,您将看到最后一个参数用于运行程序的参数。