• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

migg

Duvida no system

5 mensagens neste tópico

A minha duvida é a seguinte...

eu quero por exemplo saber o ip de um site...

para isso vou ao MS-DOS e faço ping nome do site

agora como faço em C para escrever o nome do site e aparecer o ip

eu tentei isto mas dá erro...como já estava a prever

#include <stdio.h>
#include <stdlib.h>

int main()
{
      
      char site[100];
      
      printf("---------------------------------------------------\n");    

      scanf("%s", &site);
      system("ping %s", site);
      system("\n\npause");
      return(0);  
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de escrever o comando todo na string:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) {
    char str[100];
    fgets(str,sizeof(str),stdin);
    str[strlen(str)-1]='\0';
    system(str);
    return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado,

percebi o sentido(de quando metemos no system(""), o comando já tem que estar feito)...

mas não a logica disso tudo...

resolvi o problema assim...

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) {
    char site[100]= "ping ";
    char site1[100];
    
    gets(site1);
    strcat(site, site1);
    
    system(site);
    system("pause");
    return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O "isso tudo" do meu código é uma forma correcta de ler strings do teclado. No teu código estás a usar funções que podem gerar buffer overflow. Primeiro estás a usar o gets a qual só por si pode gerar buffer overflow se o tamanho da string lida for superior ao tamanho da string que a vai guardar. Depois ainda estás a fazer strcat e nada te garante que a tal string lida com o gets possa caber nos 100 caracteres alocados para "ping " + string lida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens razão mas mesmo assim vou fazer isto...

E o url maior do mundo tem 63 caracteres

www.llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogochuchaf.co.uk

xd

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora