changeset 49 | e5d77a29bdca |
parent 18 | 47c74d1534e1 |
48:ab61c4cedc64 | 49:e5d77a29bdca |
---|---|
60 GPid |
60 GPid |
61 get_a_child (gint ttl) |
61 get_a_child (gint ttl) |
62 { |
62 { |
63 GPid pid; |
63 GPid pid; |
64 #ifdef __SYMBIAN32__ |
64 #ifdef __SYMBIAN32__ |
65 gint retval; |
|
66 #if 0 //for using g_spawn_async |
|
67 gboolean retval; |
65 gboolean retval; |
68 char **argv = NULL; |
66 char **argv = NULL; |
69 GError *error = NULL; |
67 GError *error = NULL; |
70 #endif//if 0 |
|
71 #endif//__SYMBIAN32__ |
68 #endif//__SYMBIAN32__ |
72 #ifdef G_OS_WIN32 |
69 #ifdef G_OS_WIN32 |
73 STARTUPINFO si; |
70 STARTUPINFO si; |
74 PROCESS_INFORMATION pi; |
71 PROCESS_INFORMATION pi; |
75 gchar *cmdline; |
72 gchar *cmdline; |
87 |
84 |
88 CloseHandle (pi.hThread); |
85 CloseHandle (pi.hThread); |
89 pid = pi.hProcess; |
86 pid = pi.hProcess; |
90 |
87 |
91 return pid; |
88 return pid; |
92 #endif |
89 #endif //G_OS_WIN32 |
93 #ifndef __SYMBIAN32__ |
90 #ifndef __SYMBIAN32__ |
94 pid = fork (); |
91 pid = fork (); |
95 #else |
92 #else |
96 retval = posix_spawn(&pid, "helloworld.exe", NULL,NULL,NULL,NULL); |
|
97 (void)waitpid(pid,NULL,0); |
|
98 #if 0 |
|
99 argv = (char **)malloc(3*sizeof(char *)); |
93 argv = (char **)malloc(3*sizeof(char *)); |
100 argv[0] = "Helloworld.exe"; // wrong exe name. Should cause g_spawn_async to fail |
94 argv[0] = "Helloworld.exe"; // wrong exe name. Should cause g_spawn_async to fail |
101 argv[1] = NULL; |
95 argv[1] = NULL; |
102 retval = g_spawn_async(NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, "1234", &pid, &error); |
96 retval = g_spawn_async(NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, "1234", &pid, &error); |
103 #endif//if 0 |
|
104 if (pid < 0) |
97 if (pid < 0) |
105 exit (1); |
98 exit (1); |
106 |
99 |
107 if (pid > 0) |
100 if (pid > 0) |
108 return pid; |
101 return pid; |
109 |
102 |
110 sleep (ttl); |
103 sleep (ttl); |
111 _exit (0); |
104 _exit (0); |
112 #endif /* G_OS_WIN32 */ |
105 #endif /*__SYMBIAN32__*/ |
113 } |
106 } |
114 |
107 |
115 gboolean |
108 gboolean |
116 child_watch_callback (GPid pid, gint status, gpointer data) |
109 child_watch_callback (GPid pid, gint status, gpointer data) |
117 { |
110 { |