Ver Mensaje Individual
  #1  
Antiguo 08-01-2018
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 14
aguml Va por buen camino
Problemas al escribir en un archivo

Hola amigos, estoy intentando crearme una funcion que escriba en la posicion deseada de un archivo y para ello he probado esto:
Código PHP:
void SendToFile (byte* sentence, int size, uint32_t pos, char *path) {
    
std::ofstream ostr (path);
    if (
ostr) {
        
std::streambuf * pbuf = ostr.rdbuf();
        
//Aqui obtengo el tamaño del archivo
        
std::streamsize sizeStream = pbuf->pubseekoff(0, ostr.end);
        
//Me posiciono en el lugar donde quiero escribir en el archivo
        
pbuf->pubseekoff(pos, ostr.beg);
        
//Escribo lo que quiero en el archivo usando el stream
        
pbuf->sputn (sentence,size);
        
ostr.close();
    }
} 
Y tambien esto:
Código PHP:
void SendToFile (byte* sentence, int size, uint32_t pos, char *path) {
    
std::ofstream ostr (path);
    if (
ostr) {
        
//Obtengo el tamaño del archivo
        
ostr.seekp(0,ios_base::end);
        
int size_file=ostr.tellp();
        
//Me posiciono en la posicion del archivo donde quiero escribir
        
ostr.seekp(pos,ios_base::beg);
        
//Escribo en el archivo lo que quiero
        
ostr.write(sentence,size);
        
ostr.close();
    }
} 
En ambos casos el tamaño del archivo que obtengo es 0 pero no lo es aunque cuando escribo en el si que obtengo un archivo en el que solo está lo que he escrito. ¿Alquien me puede ayudar?
Responder Con Cita