• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

msr

Copiar n bytes de um ficheiro para outro

3 mensagens neste tópico

Olá,

Preciso de copiar N bytes de um ficheiro para outro e não estou a ver como fazer isso. Sugestões?

Estou a usar o seguinte:

fp=open(ficheiro,O_RDONLY); // para abrir ficheiro fonte
bp=open(block_name,O_CREAT,O_RDWR); // para abrir ficheiro de destino

char *buf;
buf=(char *) malloc(BLOCK_SIZE);
read(fp,buf,BLOCK_SIZE);
write(bp,buf,BLOCK_SIZE);

sendo que BLOCK_SIZE são os tais Nbytes

Mas não estou a conseguir desta forma. Não aparece nada escrito nos ficheiros de destino. Será que estou a fazer alguma coisa mal?

Mais um pormenor: o ficheiro fonte pode ter várias vezes o numero de bytes BLOCK_SIZE. O ficheiro destino é que terá apenas BLOCK_SIZE. Resumindo, o que pretendo fazer é dividir um ficheiro em vários blocos de tamanho BLOCK_SIZE bytes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hum estas a apanhar o valor de retorno do read ou do write?

Não estava a usar o retorno de nenhuma... Isto porque no 3º parametro especifico o numero de bytes que quero que sejam lidos/escritos.

Experimentei agora ver o retorno das duas e a write() está a retornar "-1", ou seja, bronca! Consegues compreender porque?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora