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


_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to