C/Visual C - Problema con fwrite() y fread()

 
Vista:

Problema con fwrite() y fread()

Publicado por Clayder (16 intervenciones) el 19/11/2008 18:18:16
Hola:

Tengo un problemilla, el cual no se porque sucede. Tengo estas lineas de codigo:

Código:

FILE *fs = fopen("salida", "wb");
int n=80;
fwrite(&n, sizeof(int), 1, fs);

Al principio de mi codigo, hice una funcion en la cual leo un archivo con fread(), despues de cerrar el archivo, mas adelante lo vuelvo a abrir. Bueno, esto no es ningun problema mientras sea un archivo de texto plano. Luego de leer un archivo como una imagen o un archivo de sonido X; al momento de querer escribir en "salida", mi programa se cuelga. Como les digo, esto no sucede cuando antes de esto leo solo archivos de texto plano, solo para los otros archivos. ¿Tiene que ver algo con la funcion fflush()?, porque creo que algo parecido sucede al momente de leer variables desde el teclado.

Tengo que hacer un free() del puntero del archivo? o solo basta con el fclose()?

Gracias de antemano.

Saludos.
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:Problema con fwrite() y fread()

Publicado por Tom (619 intervenciones) el 19/11/2008 18:54:17
No parece haber problema con el (poco) código que pones.

Chequea (siempre) que el resultado de fopen() no es NULL;

Para cerrar, usa fclose() simplemente.
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:Problema con fwrite() y fread()

Publicado por Clayder (16 intervenciones) el 19/11/2008 19:06:33
antes de eso, tambien uso mas codigo que puse en un header, asi:

#ifndef FILEUTIL_H
#define FILEUTIL_H
#include <stdio.h>

char fileName[20];

void setArchivo(char name[20]);
long tamanioArchivo();
void leerBytes(char bytes[]);

#endif

el setArchivo contiene esto:

void setArchivo(char name[20])
{
strcpy(fileName, name);
}

En el tamanioArchivo(), cuento byte por byte el archivo y en el otro los meto en un arreglo. Hay algo que este haciendo mal ahi?

Gracias
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:Problema con fwrite() y fread()

Publicado por Tom (619 intervenciones) el 20/11/2008 09:46:00
No, tampoco parece haber nada mal.
Salvo que te asegures de que tus cadenas no superan los 20 caracteres; mejor usa strncpy().

char fileName[21];
...
...
...
strncpy(fileName, name, 20);
if(fileName[20]) filename[20] = 0;
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:Problema con fwrite() y fread()

Publicado por Paco (1 intervención) el 28/06/2009 17:51:46
pues no soy un experto, pero con lo que yo he visto de programacion la función free() sirve cuando usas la función malloc() que guarda el espacio de memoria en tiempo de ejecución
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