Problema abriendo un fichero en otra ubicación C

Aziwar

Bien estoy desarrollando un programa en C++ en el cuál necesito saber el estado de los procesos.

Para ello voy a /proc/pid_del_proceso/stat el cuál es un archivo que contiene dicha información.

El tema está en que como es un directorio por cada proceso, tengo que construir la cadena yo.

Pues bien ni incluso haciendo lo que pongo a continuación me abre el fichero:

spoiler

Sin embargo después si pongo fichero.open("/proc/1702/stat") si que me lo abre..

Dónde está el fallo?

EDIT: decir que compruebo que la cadena está montada correctamente.. es decir si yo hago cout << dirc ; me sale correctamente "/proc/1702/stat"

B

Las comillas son en asignaciones directamente. Si lo haces como un array de chars no tienes que ponerlas.
Esto es lo mismo:

char * str = "Hola"
char str[] = "Hola"
char str[] = {'H','o','l','a','\0'}

Te quedaría mucho más limpio si reservases espacio para el string, hicieses un strcopy , un strcat con el string del pid y un strcat de nuevo.

Eso en c puro, si dices que lo estas haciendo en c++ echale un ojo a los stringstream y no te compliques la vida.

PD: si no me equivoco, tu quieres ponerle las comillas porque en el open cuando pones un nombre directamente se lo pones. Eso lo haces porque es como una asignación anónima. si le pasas un string le pasas el string directamente, sin " ni historias.

Aziwar

cierto!! era lo de las comillas.

No claro lo tengo hecho usando el append, no lo tengo asi como lo puse. Me referia q incluso poniendolo asi (q es el modo en el q se ve todo char por char) me daba error.

Pero ahora ya nada, ya quite las comillas y ya funciona xD gracias

Usuarios habituales