Pular para o conteúdo

Chamar um script passando argumentos e alocando sua saída (em C) [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Chamar um script passando argumentos e alocando sua saída (em C) [RESOLVIDO]

Enviado em 01/12/2015 - 19:21h

Programadores de plantão, poderiam me ajudar com a seguinte inhaca: Um código em C que chama um script passando parâmetros de execução e ao mesmo tempo armazena a saída em uma variável. Eis um exemplo:

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

void main(int argc, char *argv[]){
FILE* f;
char line[130];
f=popen("ls /home/%s", "r", argv[1]); //isso aqui não funciona, mas queria que funcionasse
while(fgets(line, sizeof line, f)){
printf("%s", line);
}
printf("\n %s", argv[1]);
pclose(f);
}

Tem alguma ideia de como fazer isso?


Responder tópico

2. 3. Re: Chamar um script passando argumentos e alocando sua saída (em C)

Melhor resposta

Enviado em 03/12/2015 - 21:18h

Saudações MattF!

Não sei se você consultou as manpages, mas a função popen aceita somente dois argumentos (error: too many arguments to function ‘popen’). Sempre leve em consideração essa consulta.

Uma solução para esse problema, seguindo o raciocínio do código, seria compor o comando antes de chamar popen, segue:

int main(int argc, char *argv[]){
FILE* f;
char line[130];
char cmd[128];

sprintf(cmd,"ls /root/%s",argv[1]);

f=popen(cmd, "r"); //isso aqui funciona
while(fgets(line, sizeof line, f)){
printf("%s", line);
}
printf("\n %s\n", cmd);
pclose(f);
return 0;
}
Existem várias maneiras de resolver um problema a questão é conhecer os recursos da linguagem.
O material indicado pelo uilianries é muito bom, analise.

3. Re: Chamar um script passando argumentos e alocando sua saída (em C) [RESOLVIDO]

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder