elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  escribir fichero txt continuamente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: escribir fichero txt continuamente  (Leído 2,273 veces)
raquelsg88

Desconectado Desconectado

Mensajes: 12


Ver Perfil
escribir fichero txt continuamente
« en: 12 Julio 2013, 09:53 am »

Hola,

Escribo un fichero txt en lenguaje C, concretamente el fichero está en una memoria USB y quiero que este escribiendose continuamente y que cuando el fichero esté lleno empiece a escribir desde el principio, sobreescribiendo lo que hubiera.

res = R_tfat_f_open(&file, "prueba.txt", (TFAT_FA_READ | TFAT_FA_WRITE));
         if(fichero_lleno==1){
                  res = R_tfat_f_lseek(&file,0);
                  fichero_lleno=2;
               }
         else res = R_tfat_f_lseek(&file,file.fsize);

            for(i=0;i<4096;i++)
                  {
                     usb_gBuf = 0x62;     
                  }
                        
                  /* Write the data-set to a file. */
                  res = R_tfat_f_write(&file, usb_gBuf, sizeof(usb_gBuf), &file_rw_cnt);
               R_tfat_f_sync(&file);
               if(( res == TFAT_FR_RW_ERROR)||(file_rw_cnt==0)){
                  fichero_lleno=1;
               }

Abro el fichero y escribo 4096 caracteres, cuando se llena le digo que el cursor se ponga al principio, pero claro, me escribe los 4096, pero el fichero sigue lleno y todo el rato me escribe solo 4096 y yo lo que quiero es que el cursor vaya avanzando.

Alguien tiene una idea de como hacer esto?

Gracias!


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: escribir fichero txt continuamente
« Respuesta #1 en: 12 Julio 2013, 10:58 am »

Cuando tu estás escribiendo en un archivo, por defecto, el sistema lo trata igual que si fuese un buffer de memoria.

Cuando tu escribes en un buffer de memoria, el sistema crea un puntero que apunta a una posición concreta del buffer, de tal forma que cuando inicias operaciones de lectura o escritura, éstas se realizan a partir de esa posición.

Bueno, también puede darse el caso de que se utilicen dos punteros independientes, uno para la lectura y otro para la escritura.

La posición de éstos punteros, normalmente, se determina de forma relativa con respecto al inicio del buffer.

Con esta información, lo que podrías hacer es lo siguiente:

Lee la posición del puntero para saber si has llegado al final del archivo.

Cuando hayas llegado al final posiciona el puntero de nuevo en el principio del archivo y continúa con tu escritura.

Código
  1. // Posiciona el puntero al inicio del archivo
  2. fseek( &file, 0, SEEK_SET );
  3.  
  4. // Obtiene la posición del puntero
  5. long pos = ftell( &file );


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
escribir hora y fecha en un fichero « 1 2 »
PHP
pana88 13 11,258 Último mensaje 19 Marzo 2008, 13:52 pm
por Noxors
COdigo para buscar leer escribir fichero c++
Programación C/C++
proxiom 1 2,854 Último mensaje 9 Abril 2015, 13:56 pm
por ivancea96
Escribir en fichero sin borrar lo que hubiera
Programación C/C++
JonaLamper 1 1,696 Último mensaje 25 Noviembre 2015, 19:01 pm
por ivancea96
Escribir y leer de un fichero con objetos. « 1 2 »
Java
Fryuio 14 5,998 Último mensaje 22 Abril 2017, 16:55 pm
por Fryuio
[Linux] - Problema al escribir en un fichero de texto
Scripting
AdriánT95 2 1,844 Último mensaje 27 Abril 2017, 13:35 pm
por AdriánT95
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines