|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Feb 2003
Città: genova
Messaggi: 130
|
gestione file binari in C
#include <io.h>
#include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> int main(int arc, char *agrv[]){ int sorgente, destinazione; char buffer[1024]; int leggi_byte; sorgente = open("ciao.mp3", O_BINARY); destinazione = open("brutto.mp3", O_BINARY | O_TRUNC | O_CREAT, S_IWRITE); while(!eof(sorgente)){ if(leggi_byte = read(sorgente, buffer, sizeof(buffer)) <= 0){ fprintf(stderr,"1"); return 0;; } else if(write(destinazione, buffer, leggi_byte) != leggi_byte){ fprintf(stderr,"2"); return 0; } } close(sorgente); close(destinazione); return 0; } se lo faccio partire crea il file di destinazione ma lo lascia vuoto.... perchè???? :-( |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2003
Città: genova
Messaggi: 130
|
aiutooooooooooo
![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2002
Città: Imola
Messaggi: 1116
|
while(!feof(sorgente)){
|
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Feb 2003
Città: genova
Messaggi: 130
|
cosìnon lo compila nemmeno
![]() |
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Feb 2003
Città: genova
Messaggi: 130
|
ho fatto un paio di prove e ho scoperto che non legge e non scrive niente, crea solo il file di destinazione...
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Stai usando le syscall di Linux... Se vuoi usare il C standard devi usare le varie fread, fopen, fwrite, fclose...
Sinceramente non mi ricordo come si testa l'eof...in ogni caso credo che come parametro di apertura ci debba essere anche O_READ... Per saperlo fai man open |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Feb 2003
Città: genova
Messaggi: 130
|
grazie mille, ora riesco a leggere, ma non a scrivere
![]() ![]() #include <stdio.h> #include <stdlib.h> void main(){ FILE *lettura; int i, n; char vet[1000000]; if ((lettura = fopen("a.zip","rb"))==NULL) exit(1); /* Errore di apertura */ n = fread(vet,sizeof(int),1000000,lettura); for (i=0; i<n; i++) printf("%d ",vet[i]); fclose(lettura); char ciao[3]; ciao[0] = 'c'; ciao[1] = 'i'; ciao[2] = 'a'; FILE *scrittura; if ((scrittura = fopen("jjj.txt","wb"))==NULL) exit(1); fwrite(ciao, sizeof(int),1000000 , scrittura); fclose(scrittura); } lo ho preso da una diapositiva dell'università di roma, ma non va ![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Bannato
Iscritto dal: Feb 2003
Città: genova
Messaggi: 130
|
scusate, ho detto una c-----a, và tutto, sono io che non sono capace a copiare
![]() ![]() grazie di tutto |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:55.