Translate

tutorial operasi file halaman 12

Selamat datang di eagleboot dan selamat membaca.

Kecil dibandingkan dengannya. Format pemanggilan penulisan adalah sebagai berikut:  write_size=write(file_descriptor,buffer, size);  pada sintaks diatas, write_size merupakan jumlah byte data actual yang ditulis, bilangan negative menunjukan adanya kesalahan. File descriptor adalah file yang meneskripsikan saat sebuah file dibuka.  Buffer adalah sebuah pointer dimanadata ditulis. Size adalah ukuran data yang ditulis. Sebuah system akan dicoba untuk ditulisnya dalam jumlah besar, tetapi jika piranti telah penuh ata disana ada beberapa masalah, sejumlah bilangan dari byte mungkin akan ditulis. Terakhir adalah melakukan penutupan file dimana sintaknya adalah sebagai berikut: flag=close(file_descriptor)  pada sintaks tersebut diatas terdapat flag yang digunakan untuk menandai bahwa ketika data 0 untuk menandai bahwa penutupan berhasil sedangkan, bilangan negative ketika mengalami kegagalan atau error. File descriptor untuk mendeskripsikan saat file dibuka. Program dibawah ini merupakan pencopyan file. Operasi ini mengunakan I/O tanpa buffer karena program tersebut membutuhkan buffer yang besar. Program dibuat tidak menggunakan I/O buffer untuk membaca 1 KB data dan kemudian dipindahkan menuju buffer dengan menggunakan  ifstream dikirim menuju buffer 16KB.  

Program 12.4.
 #include<conio.h> #include<iostream> #include<cstdlib> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> usingnamespacestd; #ifdef__WIN32__ //jikakitamenggunakanWindows32 #include<io.h> //includefilei/obekerjapadaWindows32 #else/*__WIN32__*/ #include<unistd.h> //includefilei/obekerjapadaunix #endif/*__WIN32__*/ constintBUFFER_SIZE=(16*1024);//menggunakanbuffer16k intmain(intargc,char*argv[]) { charbuffer[BUFFER_SIZE];//bufferdata intin_file;//inputfiledescriptor intout_file; //outputfiledescriptor intread_size; //numberofbytesonlastread if(argc!=3){ cerr<<"Error:Angkasebagaiarugmensalah\n"; cerr<<"penggunaanyaadalah:copy<from><to>\n"; exit(8); } in_file=open(argv[1],O_RDONLY); if(in_file<0){ cerr<<"Error:tidakbisadibuka"<<argv[1]<<'\n'; exit(8); } out_file=open(argv[2],O_WRONLY|O_TRUNC|O_CREAT,0666); if(out_file<0){ cerr<<"Error:Tidakbisadibuka"<<argv[2]<<'\n'; exit(8); } while(true){ read_size=read(in_file,buffer,sizeof(buffer)); if(read_size==0) break;//akhirfile if(read_size<0){ cerr<<"Error:kesalahanbaca\n"; exit(8); } write(out_file,buffer,(unsignedint)read_size); } close(in_file); close(out_file); getch(); return(0); } 



Next read halaman 13.

Share this

Related Posts

Previous
Next Post »