Red de conocimiento informático - Material del sitio web - ¿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#.

¿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.