/*
 Application console GTK.
 gcc -Wall -s `pkg-config --cflags --libs gtk+-2.0` -o a a.c
*/

#include <gtk/gtk.h>

int main( int argc, char *argv[] )
{
  g_print("Lancement\n");

/*
// Lancement simple, asynchrone
  gchar *cmd = "./1";
  GError *err = NULL;

  if (g_spawn_command_line_async (cmd, &err))
    g_print("oki\n");
  else g_print("pas oki. g_spawn_command_line_async retourne FALSE\n");
*/

/*
// Lancement simple, synchrone.
  gint exit_status;
  gchar *sout=NULL;
  gchar *serr=NULL;
  GError *err = NULL;
  gchar *cmd = "./1";

  if (g_spawn_command_line_sync (cmp, &sout,&serr,&exit_status,&err))
      g_print("exit_status : %d\n"
              "sout = [%s]\n"
              "serr = [%s]\n", exit_status, sout, serr);
  else g_print("pas oki. g_spawn_command_line_sync retourne FALSE\n");
*/
/*
// Asynchrone avec pipes.
  GPid child_pid;
  GError *err = NULL;
  gchar *sout=NULL;
  gchar *serr=NULL;
  FILE * pipin = fopen(stdin, "r");

  if (g_spawn_async_with_pipes  (NULL,argv,NULL,
 				G_SPAWN_FILE_AND_ARGV_ZERO,
				NULL,NULL,
				&child_pid,
				NULL,
				pipin,
				NULL,
				&err))
       g_print("exit_status : %d\n"
              "sout = [%s]\n"
              "serr = [%s]\n"
              "pid = [%d]\n", exit_status, sout, serr, pid_child);
  else g_print("pas oki. g_spawn_async_with_pipes retourne FALSE\n");
  if (err) g_print("err->message : %s\n", err->message);

  fclose (pipin);
*/
  argv[0] = "./1";
  //gchar *cmd = "./1";
  GPid child_pid;
  GError *err = NULL;
  if (g_spawn_async (NULL,
                     argv,
                     NULL,
                     G_SPAWN_FILE_AND_ARGV_ZERO,
                     NULL,
                     NULL,
                     &child_pid,
                     &err))
       g_print("pid = [%d]\n", child_pid);
  else g_print("pas oki. g_spawn_async retourne FALSE\n");
  if (err) g_print("err->message : %s\n", err->message);

  g_print("fin.\n");

  return 0;
}