C/Visual C - ller resultados de comando

 
Vista:

ller resultados de comando

Publicado por oscar (6 intervenciones) el 12/10/2005 16:14:58
hola

tengo un programa en c++ en unix/linux que debe tener una sola instancia, para ello se me ocurre que podria utilizar comandos del sistema, como ps, greep, y wc, efectivamente me da la informacion que necesito: saber si existe el proceso ejecutandose, como puedo leer esa informacion desde mi programa en c++?
en otras palabras, si ejecuto un comando, por ejemplo un ls, como leo las respuestas? tendria que hacer un telnet a si mismo?
como puedo hace rlo mismo pero en Windows (DOS)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ller resultados de comando

Publicado por Googol (255 intervenciones) el 12/10/2005 22:01:49
En Linux normalmente lo que se hace es utilizar un fichero de bloqueo... cuando lanzas el programa creas un fichero en algún sitio concreto (y fijo) de la ruta de directorios, por ejemplo en ~/.miprograma/lockFECHA_DE_HOY. Ese fichero lo borras cuando el programa se cierra. Evidentemente, cuando ejecutas el programa, antes de empezar a cosas útiles (y antes de crear el fichero) compruebas que no existe ya uno. Si existe, das un mensaje de error al usuario diciéndole que parece que ya hay una instancia del programa en ejecución... y que si está seguro de que no es así, que borre el fichero de bloqueo en cuestión.

En Windows creo que se podía hacer mirando si la descripción de la ventana en CreateWindow ya estaba registrada o algo así... aunque ahora lo tengo un poco oxidado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ller resultados de comando

Publicado por fernando.gomez (1603 intervenciones) el 13/10/2005 22:15:25
En Windows puedes hacer lo mismo que te recomiendan para Unix. Sin embargo, algo más estándar es hacer algo análogo a eso del archivo, pero guardando la información en el Registry de Windows.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar