queria enteder de uma vez por todas como funcionam certas coisas no C:
eu tenho que fazer um programa que recebe na linha de comando assim:
nome_do_prog NUMERO file1 file2 ... fileN
-o NUMERO sera' o numero de filhos que deverao ser criados e executarao os N primeiros files da linha de comando.
Eu cheguei a fazer a primeira parte que é pegar do argv[] os seus valores e colocar dentro de variaveis pra poder chamar uma funcao denominada paralelo(int num; char executable[255]) onde serao executados os N files.
-Vamos ao que interessa:
int main(int argc, char** argv)
{
int j, x, m, n, cont;
int k;
char* comandi[255] = {NULL};
k=atoi(argv[1]);
printf("K vale %d\n", k);
for(cont=0;cont<k+1;cont++)
{
comandi[cont]=strdup(argv[cont+1]);
printf("copiado o file para execucao em paralelo: %s\n ", comandi[cont]);
}
x=paralelo(k, comandi[255]);
essa primeira parte coloca o valor de argv[1] em k e nome dos files em um vetor chamado comandi[]
Com esses 2 vetores eu chamo uma funcao chamada paralelo(k, comandi[255]) :
int paralelo(int num, char executable[255]) // ta certa essa chamada do programa ??? Acho q da dando tudo errado quando eu chamo ele com " paralelo(k, comandi[255])"
{
int i,pid,status, morte;
char files[255];
printf("Serao criados %d filhos em paralelo\n", num);
for(i=0;i<num;i++)
{
pid=fork();
if(pid==0)
{
printf("%s\n", files[i]);
execl("????"); // AQUI: como faço para que o filho execute o programa que tem o nome armazenado em executable[] ???
exit(0);
}
if(pid!=0)
{
morte=wait(&status);
printf("E morto il figlio %d\n", morte);
}
}
return(0);
}
preciso de achar um modo para que cada filho no ciclo for execute o arquivo que foi passado a executable[255]
Acho q a chamada do programa paralelo(k, comandi[255]) ta errada.
Pergunta
pierao
queria enteder de uma vez por todas como funcionam certas coisas no C:
eu tenho que fazer um programa que recebe na linha de comando assim:
nome_do_prog NUMERO file1 file2 ... fileN
-o NUMERO sera' o numero de filhos que deverao ser criados e executarao os N primeiros files da linha de comando.
Eu cheguei a fazer a primeira parte que é pegar do argv[] os seus valores e colocar dentro de variaveis pra poder chamar uma funcao denominada paralelo(int num; char executable[255]) onde serao executados os N files.
-Vamos ao que interessa:
essa primeira parte coloca o valor de argv[1] em k e nome dos files em um vetor chamado comandi[] Com esses 2 vetores eu chamo uma funcao chamada paralelo(k, comandi[255]) :preciso de achar um modo para que cada filho no ciclo for execute o arquivo que foi passado a executable[255]
Acho q a chamada do programa paralelo(k, comandi[255]) ta errada.
alguém me da uma luz ?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.