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

Fallo creando archivos C++

Estas en el tema de Fallo creando archivos C++ en el foro de C/C++ en Foros del Web. Hola, tengo un programa escrito en C++ y hago uso de una librería que crea ficheros con nombre aleatorio. El código es el siguiente: Código: ...
  #1 (permalink)  
Antiguo 12/01/2009, 07:14
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Fallo creando archivos C++

Hola,
tengo un programa escrito en C++ y hago uso de una librería que crea ficheros con nombre aleatorio. El código es el siguiente:

Código:
        char* file_save = new char[ file.size() + 1 ];
        strcpy (file_save, file.c_str());
        mkstemp (file_save);
        ofstream f_file_save (file_save, ios::out);
        if (!f_file_save)
        {
                syslog (LOG_DEBUG, "%s: don't create file",name.c_str());
                delete file_save;
                return false;
        }
        else
        {
                f_file_save << faxImage << endl;
                f_file_save << faxModem << endl;
                f_file_save.flush();
                f_file_save.close();
		syslog(LOG_NOTICE, "%s: create new file: %s",name.c_str(),file_save);
        }
        delete file_save;
        return true;
El problema que tengo es que después de un tiempo funcionando perfectamente, comienza a no ser capaz de crear los ficheros, pero no se el por qué. Para que sea capaz de volver a crearlos, es necesario cerrar el programa y volver a ejecutarlo, sino es imposible.
No se por que es el fallo, unas veces sí, otras no. Los ficheros son texto plano y lo único que hace es crearlo con el nombre que se le pasa y luego escribir datos en él.

¿Alguna idea de por que falla? ¿Alguna otra librería que haga lo mismo? Tienes que ser multisistema (Linux/Windows).
  #2 (permalink)  
Antiguo 12/01/2009, 07:43
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: Fallo creando archivos C++

mkstemp parece funcionar de otra manera a la que vos crees.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 12/01/2009, 10:53
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Fallo creando archivos C++

Hola,

creo que mkstemp está a funcionar correctamente como yo lo tengo implementado. Es más, funcionar siempre funciona hasta que llegado un punto comienza a fallar y luego no recupera.
¿Por qué dices que está a fallar?
En el enlace pasado veo que es igual. Para mi file_save es una ruta con un fichero /tmp/mkXXXXXX, por lo que tanto da cómo se le pase. Eso funciona correctamente.
En el debug veo que está a funcionar correctamente, coge el nombre correcto, pero cuando se ejecuta es cuando falla. No se por que :S
  #4 (permalink)  
Antiguo 12/01/2009, 11:22
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: Fallo creando archivos C++

Para empezar se supone que esa funcion devuelve un HANDLE al archivo y nunca lo cerras sino que ademas abris otro que si cerras al menos ... depuralo hasta que falle y fijate que devuelve mkstemp y que cadena es file_save en ese caso.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 13:44.