0

我想在某些设置文件中设置默认的 ping 截止日期。我的程序在尝试连接到非 ping 的 IP 地址时挂起。

在终端中,我可以调用“ping 123.0.0.1 -w 5”,它不会永远持续下去,但我不能在代码中设置任何截止日期。

4

1 回答 1

3

壳牌解决方案:

在您.bashrc添加以下内容:

function ping {
    /bin/ping $@ -w5
}

这将创建一个包装函数,它将所有调用的超时设置为 5 秒ping

注意:上面的版本将覆盖-w命令行上使用的参数。如果您仍然希望能够通过命令行覆盖默认超时而不是放置在-w5之前$@

function ping {
    /bin/ping -w5 $@
}

纯C解决方案:

为简洁起见,我不会在这里给出一个完整的例子。例如,您可以在这里找到一个。在给定的示例中,您必须替换recvfrom()读取 ICMP 响应的调用,并且可能会被 a select()orpoll()超时阻塞。

于 2013-08-09T09:18:32.583 回答