Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejecución de comando del sistema lenta

Estas en el tema de Ejecución de comando del sistema lenta en el foro de C/C++ en Foros del Web. Hola, tengo la siguiente función escrita en C++ Código: bool fax::sendFaxSmb() { syslog(LOG_NOTICE, "delivered...",); string cmd = "/usr/local/sbin/smb "; cmd += Name; cmd += " ...
  #1 (permalink)  
Antiguo 15/01/2009, 06:10
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Ejecución de comando del sistema lenta

Hola,

tengo la siguiente función escrita en C++
Código:
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 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.
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.