msr Posted March 15, 2009 at 12:28 AM Report Share #250777 Posted March 15, 2009 at 12:28 AM 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. COMPONENT ORGANIZER easily organize your electronic parts and application notes Link to comment Share on other sites More sharing options...
SunShade Posted March 15, 2009 at 01:28 AM Report Share #250781 Posted March 15, 2009 at 01:28 AM hum estas a apanhar o valor de retorno do read ou do write? Link to comment Share on other sites More sharing options...
msr Posted March 15, 2009 at 01:38 AM Author Report Share #250782 Posted March 15, 2009 at 01:38 AM 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? COMPONENT ORGANIZER easily organize your electronic parts and application notes Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now