Julio 05, 2015, 09:00:04 am

Autor Tema: Saber programa en ejecución (ver explicación)  (Leído 1527 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado guevo056

  • Me das tu IP?
  • *
  • Mensajes: 50
    • Ver Perfil
Saber programa en ejecución (ver explicación)
« en: Mayo 15, 2010, 03:33:36 am »
Buenas

Estoy desarrollando mi primera librería. Es un proyecto pequeño porque estoy aprendiendo. Estoy creando una librería para  gestionar logs en otros programas.

Bueno en uno de los procedimiento definidos dentro de la librería me gustaría el nombre de la aplicación que se esta ejecutando para poder crear un fichero con el mismo nombre.

Gracias de antemano.

Desconectado guevo056

  • Me das tu IP?
  • *
  • Mensajes: 50
    • Ver Perfil
Re: Saber programa en ejecución (ver explicación)
« Respuesta #1 en: Junio 02, 2010, 01:53:56 pm »
Es decir, dentro de un programa.

ejecutar un sytem("x");


para poder sacar por pantalla el nombre del programa en ejecución.

Desconectado JaAViEr

  • ¡ Programming the world !
  • Colaborador
  • ***
  • Mensajes: 8216
  • No te olvides visitar http://www.codigo.ga
    • Ver Perfil
    • MiWeb
Re: Saber programa en ejecución (ver explicación)
« Respuesta #2 en: Junio 02, 2010, 07:14:29 pm »
Si quieres ver los procesos en ejecución, Tasklist es tu respuesta.
Porfavor no hagas doble post ;D

Saludos.

Desconectado guevo056

  • Me das tu IP?
  • *
  • Mensajes: 50
    • Ver Perfil
Re: Saber programa en ejecución (ver explicación)
« Respuesta #3 en: Junio 03, 2010, 12:53:58 pm »
Me auto-respondo.

Lo que yo pedía es saber el código que hay que poner dentro de un programa para que estando este en ejecución saber el nombre del programa en ejecución.  Dado que este código lo estoy metiendo en una librería creo que es interesante porque el nombre del programa es desconocido para el creador de la libreria.

Me autocontesto ya que he conseguido la solución:
Código: (cpp) [Seleccionar]
void borrar_fichero()
{
if( remove( "temp.txt" ) == -1 )
{
    perror( "¡¡ Error borrando el fichero !!" );
}
else
puts( "Fichero borrado correctamente." );
}

bool busqueda_fichero(string origen, string destino, int secuencia)
{
ifstream fin;
ofstream fout;
string s;

fout.open(destino.c_str());
fin.open(origen.c_str());

if (fin.fail()) // Problema al abrir el fichero con los datos
    {
    cout << "Fichero de origen no existe.\n";
    return false;
     }

getline(fin,s,' '); // Lee solo una palabra, no una linea
     while (!fin.eof())
     {
      cout << s << endl;
      if(atoi(s.c_str())==secuencia) // Convertir el string en int para poder compararlo
      {
      getline(fin,s,' ');
      getline(fin,s,' ');
      getline(fin,s,' ');
      getline(fin,s,' ');
      getline(fin,s,' ');
      getline(fin,s,' ');
      break;
      }
      getline(fin,s,' ');
     }

s[0]=' ';
     s[1]=' ';
     
     fout << s;
     
     fout.close();
     fin.close();
     
     borrar_fichero(); // Borramos fichero temporal
     cout << "\nDone.\n";
     return true;
}
void pasar_cadena(string mensaje)
{
int valor;

valor=getpid();
cout << "PID IMPORTANTE " << valor << endl;
system("ps >> temp.txt");  // Guardo resultado en un fichero temporal

bool test=busqueda_fichero("temp.txt", "destino.txt", valor);
//cout << mensaje << endl;
}

Por si ha alguien le sirve.

En la solución el nombre del programa lo escribe en un fichero llamado destino.txt. Es trivial sacarlo por pantalla.

Funciona en Linux y MAC.


Fatal error: Call to undefined function seo_social_bookmarks() in /home/portalh/public_html/Seo.php on line 1528