Unix - usar write read (buffer)

 
Vista:

usar write read (buffer)

Publicado por slgr (1 intervención) el 02/08/2006 18:17:23
hola a todos, a ver si me podeis ayudar a una cosilla

// quisiera leer del fichero origen numeros reales y pasarlos al fichero destinno a enteros con llamadas al sistema de unix

me podriais ayudar, he intentado ahcerlo con este codigo?

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h>

#define BUF_SIZE 8092 // tamaño del buffer

int main(int argc, char *argv[]){

int desc_fich1; /* Descriptor del fichero a copiar */
int desc_fich2,i; /* Descriptor del fichero destino */
float buf[BUF_SIZE];
ssize_t bytes_leidos;
ssize_t bytes_escritos;

/* comprobacion de errores en la linea de comandos */
if(argc!=3)
{
printf("error");
}


desc_fich1 = open(argv[1],O_RDONLY);
desc_fich2 = open(argv[2],O_WRONLY | O_CREAT | O_TRUNC, 0666);


while ((bytes_leidos = read(desc_fich1, buf, sizeof(float)))> 0 )
{
for (i=0;i<bytes_leidos;i++)
{
como leo del fuffer los reales, los paso a enteros y los escribo en
el fichero destino?
}
write(desc_fich2, buffer,sizeof(int));


}


/* Cierre de los ficheros */
close(desc_fich1);
close(desc_fich2);
}/* main */
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:usar write read (buffer)

Publicado por Tom (7 intervenciones) el 03/10/2006 18:50:46
Por ejemplo:

...

float buf;

while(read(desc_fich1, &buf, sizeof(float)) > 0) {
int dest = (int)trunc(buf);
write(desc_fich2, dest, sizeof(int));
}
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