Problema con system(), fork() y exec()

Imagen de darxcom
0 puntos

Buenas, estoy desarrolando una GUI y tengo un problemilla. La cuestion es que quiero que pulsando un boton del interfaz se ejecute un programa (en mi caso el firestarter y algun otro)

El codigo que da el problema es el siguiente:

 

if (fork()==0){

    system("gksudo -k -m 'Introduce contraseña de root' 'firestarter' ");  // gksudo es igual que sudo pero pide la contraseña en modo grafico

 }

//El proceso padre no hará nada en especial, unicamente seguirá teniendo el control del interfaz g?afico 

 

La razon de crear el proceso hijo es que cuando pulse el boton no quiero que la aplicacion se quede bloqueada hasta que se cierre el firestarter.

Al pulsar el boton todo funciona bien pero cuando cierro el firestarter se produce el siguiente error:

Xlib: unexpected async reply (sequence 0x1e9f)!
Xlib: unexpected async reply (sequence 0x1ec3)!
Xlib: unexpected async reply (sequence 0x1ec6)!

 

¿Alguien me ayuda? 

 He probado tambien con execv(comando,NULL); en vez de system() pero sigue apareciendo el mismo error y ni siquiera se ejecuta el firestarter

 

Un saludo y gracias de antemano