¿Cómo utilizar el lenguaje C para determinar si el comando ping puede hacer ping correctamente? Proporcione el código. Se debe utilizar el lenguaje C, no C o C#.
El código se ejecuta normalmente en MAC OS, pero requiere algunas modificaciones en Linux
#include?lt;stdio.hgt;
#include?lt ;fcntl; .hgt;
#include?lt;string.hgt;
#include?lt;string.hgt;
#include?lt;stdlib .hgt ;
#include?lt;unistd.hgt;
int?main(void)
{
char?host [256 ],?cmd[256];
printf("por favor?input?dest_host:");
scanf("s",?host);
strncpy(cmd,?"ping?c5?",?9);
strncat(cmd,?host,?strlen(host));
strncat(cmd ,? "? gt;?ping.txt",?11);
pid_t?pid?=?fork();
if(pid?lt;?0)
{
printf("fork?error\n");
salir(-1); p>
if(pid==0)
{
if(execlp("/bin/sh",?" sh",?" -c" ,? cmd,? (char?*)0)?lt;?0)
printf("execlp?error\n");
salir(0);
p>
}
if(waitpid(pid,?NULL,?0)?lt;?0)
printf("waitpid?error\n" );
int?fd?=?open("ping.txt",?O_RDWR);
int?n;
char?buf[1024 ];
n?=? read(fd,?buf,?sizeof(buf));
if(n?lt;=?0)
{
printf("leer?error\n");
salir(-1); strstr(buf , ?");
int? ?")?100.0")? ==?NULL)
printf("can?reach?s",?host) ;
p>else
printf("¿no?alcanzar?s",?host);
close(fd);
volver? }
Si quieres un programa de ping, escribí uno recientemente.