tengo la siguiente función escrita en C++
Código:
El problema que tengo es que en ciertas ocasiones sin explicación alguna el código llega a la línea "Vamos a ejecutar", pero después de ahí tarda mucho en ejecutar el programa.bool fax::sendFaxSmb() { syslog(LOG_NOTICE, "delivered...",); string cmd = "/usr/local/sbin/smb "; cmd += Name; cmd += " "; cmd += Number; cmd += " "; cmd += Destination; syslog(LOG_NOTICE, "Vamos a ejecutar"); if (!system(cmd.c_str())) return true; else { syslog(LOG_NOTICE, "Fallo"); return false; } }
El programa es un script en perl que también envía mensajes a syslog, por lo que se si se está a ejecutar o no.
¿Por qué motivo puede quedarse pillado en dicha línea? La ejecución es correcta y los parámetros pasados también.
¿Alguna otra forma de ejecutar comandos del sistema? ¿Qué diferencias hay entre system, exec, execv? Necesito obtener el código devuelto por el script, para saber si éste terminó bien o no.
Muchas gracias por la ayuda.
Un saludo.