vos me decis que use la funcion fcntl para ejecutar en lugar de system? tienes algun ejemplo? Gracias de antemano
Message: 19 Date: Tue, 22 Jun 2010 18:00:22 -0400 From: Alvaro Herrera <alvhe...@alvh.no-ip.org> Subject: Re: Problemas con puertos en linux To: linux <linux@listas.inf.utfsm.cl> Message-ID: <1277243817-sup-7...@alvh.no-ip.org> Content-Type: text/plain; charset=UTF-8 Excerpts from Alvaro Gili's message of mar jun 22 16:56:14 -0400 2010: > No gente, no existe ningún fork y uno no es hijo del otro. Simplemente mi > aplicación lo que hace es ejecutar usando la sentencia system de C al otro. > Dentro de mi aplicación hago "system("service FTM start");" y nada mas, > despues son totalmente independientes, Pero cuando cierro mi aplicación, el > puerto tcp queda asociado al proceso FTM, siendo que este es otra aplicación > totalmente distinta. system() hace fork internamente. Quizás lo que está pasando es que el FD se hereda desde tu proceso hacia el FTM a través del shell. Creo que lo que deberías hacer es cerrar tu socket antes de llamar a system(). Otra posibilidad sería darle un fctnl(FD_CLOEXEC) para que se cierre automáticamente con ese fork/exec. --