estou tentando usar o comando execl para executar um comando em shell.
O execl está dentro de um while que vai de 1 até 253, ou seja, o execl é executado 253 vezes, só que quando chega +- no 104 por algum motivo o execl não consegue mais ser executado, coloquei um printf para me mostrar se realmente o while chega no 253 e ele chega sem problemas, só o execl que não é mais executado, tb coloquei um system("ls") pra ver no que dava... se eu coloco antes do 104 ele funciona normal, se eu coloco depois ele tb não é executado...
if ( fork()==0 ) execl( "/bin/echo","echo","=",&primeiro,NULL);
fprimeiro=fprimeiro+1;
}
}
esse é um exemplo do que estou falando, apezar de que está dando um erro estranho na hr de compilar (no sprintf), coisa que no programa não dá erro, compila e funciona normal...
ah... eu já tentei usar um sleep de até 10 segundos, mas não resolveu, o problema não é o tempo e sim algo referente a quantidade de processos mesmo...
Pergunta
magronez
estou tentando usar o comando execl para executar um comando em shell.
O execl está dentro de um while que vai de 1 até 253, ou seja, o execl é executado 253 vezes, só que quando chega +- no 104 por algum motivo o execl não consegue mais ser executado, coloquei um printf para me mostrar se realmente o while chega no 253 e ele chega sem problemas, só o execl que não é mais executado, tb coloquei um system("ls") pra ver no que dava... se eu coloco antes do 104 ele funciona normal, se eu coloco depois ele tb não é executado...
alguém sabe o que pode ser?
#include <stdio.h>
int main ()
{
char primeiro;
int fultimo;
int fprimeiro;
fultimo=253;
fprimeiro=1;
while (fultimo >= fprimeiro)
{
//printf("\fprimeiro=%d\nfultimo=%d\n",fprimeiro,fultimo);
sprintf(fprimeiro,"%d",primeiro);
sleep(1);
if ( fork()==0 ) execl( "/bin/echo","echo","=",&primeiro,NULL);
fprimeiro=fprimeiro+1;
}
}
esse é um exemplo do que estou falando, apezar de que está dando um erro estranho na hr de compilar (no sprintf), coisa que no programa não dá erro, compila e funciona normal...
ah... eu já tentei usar um sleep de até 10 segundos, mas não resolveu, o problema não é o tempo e sim algo referente a quantidade de processos mesmo...
Link para o comentário
Compartilhar em outros sites
3 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.