Re: X-connection after a fork
- From: Jamie Guinan <guinan bluebutton com>
- To: Conrad Steenberg <conrad srl caltech edu>
- Cc: gtk-list gnome org
- Subject: Re: X-connection after a fork
- Date: Thu, 5 Oct 2000 02:37:42 -0400 (EDT)
On Tue, 3 Oct 2000, Conrad Steenberg wrote:
> Hi
>
> Thanks for everyone that replied, it seems I'll have to rethink the
> problem a little :-)
>
> Cheers!
>
> Conrad
If its not too late for one last reply, following the Gnome code's
example you could set the close-on-exec flag for all file descriptors
except stdin/out/err. See gnome-libs/libgnome/gnome-exec.c for all the
details.
For a simple example, take the buttons example program that comes with
gtk+-devel-1.2.6 (on Red Hat anyway), its pretty easy to modify it to
spawn (for example) Gimp,
-----------------------------------------------------------
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
...
/* Our usual callback function */
void callback( GtkWidget *widget,
gpointer data )
{
pid_t pid;
int open_max;
g_print ("Hello again - %s was pressed\n", (char *) data);
switch ((pid = fork()))
{
case -1:
g_print("error in fork\n");
break;
case 0:
open_max = sysconf (_SC_OPEN_MAX);
for (i = 3; i < open_max; i++)
fcntl(i, F_SETFD, (long)FD_CLOEXEC);
execlp("gimp", "gimp", NULL);
break;
default:
g_print("child pid is %d\n", (int) pid);
break;
}
}
....
--------------------------------------------------------------
-Jamie
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]