stremer
(usa Arch Linux)
Enviado em 16/05/2008 - 10:21h
slackware_10, cuidado, seu código pode possibilitar buffer overflow.
Sempre prefira o fgets ao gets, pois controla a entrada de buffer.
E alem disso o fgets ja coloca o byte 0 no final da string.
Ficaria assim.
PS: Critica construtiva ok, eu tbem erro muito pois trabalho 90% do tempo com java e acabo ficando burrão em C volta e meia.
#include <stdio.h>
#include <stdlib.h>
int main(void){
char var[100];
// Se nao deixarmos 1 byte a mais podemos ter
// problemas ou o char zero será armazenado em um
// lugar que pode estar em uso causando problemas
// intermitentes
char ip[16];
printf("IP: ");
__fpurge(stdin);
fgets(ip, 16, stdin);
// Nao se esqueca que o enter deve ser removido
ip[strlen(ip)] = 0;
memset(var, 0x0, 100);
sprintf(var, "ping %s", ip);
system(var);
return 0;
}