Primeira dica de programação em C. Dica muito útil. Usando-a corretamente, dará para automatizar bastante algumas tarefas diárias ou até fazer algumas interfaces mais legais para certos programas como o exemplo que mostrarei no final desta dica.
Pois bem, para colocar comando do sistema em C é bem simples, basta inserir o comando system().
Ex.: system("clear");
Com isso, quando compilar o nosso programa em C, o sistema vai limpar a tela, ou seja, a mesma coisa que o comando clear faz quando estamos no Linux em modo texto.
Ok, até aí tudo bem! E se eu quero interagir o programa com o usuário e o usuário por exemplo quer dar um simples "nmap" em um determinado ip sem pôr a sintaxe: nmap -sS -sV. O que eu faço?
Se tentar por:
Ex.: system("nmap -sS -sV %s", ip);
Vai dar erro, pois o comando system não aceita variáveis. O que fazer? Aí que entra o comando sprintf.
O comando sprintf funciona da seguinte maneira:
sprintf(var, "comando + variável", variavel);
system(var);
Sendo que:
var = pode por qualquer nome, essa variável vai armazenar o "comando + variável" para depois passarmos para o system;
comando + variável = ex.: nmap -sS -sV %s
variavel = a variável que você quer que %s receba.
Para ficar mais fácil o entendimento, vou pôr um exemplo do script para nmap.
char ip[16]; //variável que vai receber o ip do usuário
char var[100]; //variável que vai receber o comando+variável ip
printf("Entre com o número do ip: ");
scanf("%s",&ip); //var ip tem o valor digitado pelo usuário
sprintf(var, "nmap -sS -sV %s", ip); //var recebe valor com + var ip
system(var); //system recebe valor de var
return 0;
}
Compile essa parte do script e terá uma noção maior do que o comando sprintf é capaz!!
Não se esqueça de adicionar as bibliotecas stdlib.h e stdio.h .O blog não sei porque não deixa eu declara-las no post... hauiha!!!
Acho que por hoje é só.
Obrigado a todos. =)