我想在某些设置文件中设置默认的 ping 截止日期。我的程序在尝试连接到非 ping 的 IP 地址时挂起。
在终端中,我可以调用“ping 123.0.0.1 -w 5”,它不会永远持续下去,但我不能在代码中设置任何截止日期。
壳牌解决方案:
在您.bashrc
添加以下内容:
function ping {
/bin/ping $@ -w5
}
这将创建一个包装函数,它将所有调用的超时设置为 5 秒ping
注意:上面的版本将覆盖-w
命令行上使用的参数。如果您仍然希望能够通过命令行覆盖默认超时而不是放置在-w5
之前$@
:
function ping {
/bin/ping -w5 $@
}
纯C解决方案:
为简洁起见,我不会在这里给出一个完整的例子。例如,您可以在这里找到一个。在给定的示例中,您必须替换recvfrom()
读取 ICMP 响应的调用,并且可能会被 a select()
orpoll()
超时阻塞。