rgcaldas Posted November 26, 2007 at 06:10 PM Report Share #150470 Posted November 26, 2007 at 06:10 PM Boas Existe alguma forma de libertar um processo criado com o fork() + execlp Por exemplo, eu chamo o firefox para abrir um ficheiro de dentro do meu código com execlp("firefox","firefox","index.html",NULL) E o firefox abre o ficheiro mas o código só termina quando eu fechar o firefox, E o que eu queria era que a minha aplicação terminasse mas o firefox continuasse. P.S. se for com o system é igual porque ele utiliza o fork. Alguém tem alguma ideia Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 26, 2007 at 07:58 PM Report Share #150500 Posted November 26, 2007 at 07:58 PM Por acaso não estás a fazer um wait aí pelo meio? É que se não estás o programa principal devia terminar. PS: Em que SO estás? Testei em Mac e Linux o programa principal não ficava à espera do outros processo (aliás, com o gVim, nem valia a pena pôr o wait que terminava na mesmo antes de fechar o gVim). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
rgcaldas Posted November 26, 2007 at 10:55 PM Author Report Share #150549 Posted November 26, 2007 at 10:55 PM Antes de mais obrigado mais uma vez Rui pela resposta Não tenho wait Tou em linux experimenta este código se puderes #include <stdlib.h> #include <unistd.h> #include <sys/types.h> int main(int argc, char* argv[]) { pid_t pid; (void)argc;(void)argv; pid = fork(); if (pid==0) { execlp("firefox",NULL); } return 0; } A mim dá-me uns erros estranhos, mas também dá se tentar correr o firefox da linha de comandos, e fica à espera Link to comment Share on other sites More sharing options...
Hipnoted Posted November 26, 2007 at 11:45 PM Report Share #150564 Posted November 26, 2007 at 11:45 PM Eu experimentei e o programa fecha, não fica à espera. Sinceramente também não sei o problema... "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 27, 2007 at 12:19 AM Report Share #150568 Posted November 27, 2007 at 12:19 AM Antes de mais obrigado mais uma vez Rui pela resposta Não tenho wait Tou em linux experimenta este código se puderes #include <stdlib.h> #include <unistd.h> #include <sys/types.h> int main(int argc, char* argv[]) { pid_t pid; (void)argc;(void)argv; pid = fork(); if (pid==0) { execlp("firefox",NULL); } return 0; } A mim dá-me uns erros estranhos, mas também dá se tentar correr o firefox da linha de comandos, e fica à espera Na linha de comandos é normal que fique à espera do processo (a menos que uses o &), agora quando usas o fork, só com um wait (ou algo parecido) é que o processo pai fica à espera do filho. Eu testei um código semelhante ao que colocaste aí, e não ficava à espera que encerrasse o firefox. Podes colocar aqui o output da execução desse código? Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
rgcaldas Posted November 27, 2007 at 01:05 AM Author Report Share #150581 Posted November 27, 2007 at 01:05 AM Na linha de comandos é normal que fique à espera do processo (a menos que uses o &), agora quando usas o fork, só com um wait (ou algo parecido) é que o processo pai fica à espera do filho. Eu testei um código semelhante ao que colocaste aí, e não ficava à espera que encerrasse o firefox. Podes colocar aqui o output da execução desse código? Aqui fica o output rg@rg-desktop:Desktop$ gcc teste.c -o teste.o -Wall -ansi rg@rg-desktop:Desktop$ ./teste.o rg@rg-desktop:Desktop$ /home/rg/.themes/T-ish-Clearlooks-AquaStyle/gtk-2.0/gtkrc:2: Unable to find include file: "iconrc" /home/rg/.themes/T-ish-Clearlooks-AquaStyle/gtk-2.0/gtkrc:60: Clearlooks configuration option "sunkenmenu" is not supported and will be ignored. /home/rg/.themes/T-ish-Clearlooks-AquaStyle/gtk-2.0/gtkrc:61: Clearlooks configuration option "menuitemstyle" is not supported and will be ignored. /home/rg/.themes/T-ish-Clearlooks-AquaStyle/gtk-2.0/gtkrc:62: Clearlooks configuration option "listviewitemstyle" is not supported and will be ignored. /home/rg/.themes/T-ish-Clearlooks-AquaStyle/gtk-2.0/gtkrc:63: Clearlooks configuration option "progressbarstyle" is not supported and will be ignored. Eu também me parecia que não tinha a ver com o código, deve ser do meu ubuntu (sim ainda não consigo configurar debian como deve ser 😛 ) Link to comment Share on other sites More sharing options...
Hipnoted Posted November 27, 2007 at 01:12 AM Report Share #150583 Posted November 27, 2007 at 01:12 AM Problemas com o GTK. Tens os efeitos ligados (Compiz)? Se tiveres desliga e volta a tentar. Pelo que vi isso é um bug, há vários pessoas pela net com esse problema... "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
rgcaldas Posted November 27, 2007 at 01:13 AM Author Report Share #150584 Posted November 27, 2007 at 01:13 AM Problemas com o GTK. Tens os efeitos ligados (Compiz)? Se tiveres desliga e volta a tentar. Pelo que vi isso é um bug, há vários pessoas pela net com esse problema... Não tenho o compiz ligado, mas o estranho é que se correr o código com o firefox já aberto ele comporta-se como deve ser. Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 27, 2007 at 10:15 AM Report Share #150610 Posted November 27, 2007 at 10:15 AM g@rg-desktop:Desktop$ ./teste.o rg@rg-desktop:Desktop$ /home/rg/.themes/T-ish-Clearlooks-AquaStyle/gtk-2.0/gtkrc:2: Unable to find include file: "iconrc" Como podes ver por estas duas linhas, o programa terminou (repara no início da segunda linha). Ou seja, podes executar qualquer comando neste momento. No entanto, As mensagens de erro poderão ainda aparecer aí pelo meio misturadas com o que fizeres depois. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now