File Processing
File & Stream
Stream adalah sebuah urutan karakter. Semua input dan output data adalah stram. C melihat file sebagai stream.
Ketika menjalankan sebuah program C, ada 3 stream standar yang diaktifkan:
1. Standard Input Stream: mengkontrol input stream dari keyboard.
2. Standard Output Stream: mengkontrol output stream ke monitor.
3. Standar Error Stream: mengkontrol error messaging.
Setiap stream terkait dengan sebuah file.
Definisi File
File adalah kumpulan dari record.
Buffer Area
Buffer area adalah bagian dari memori yang digunakan sebagai penampung sementara sebelum data dipindahkan ke sebuah file.
Syntax: FILE *fp; //fp adalah file pointer.
Open File
- Membuka sebuah file menggunakan fopen():
FILE *fopen (const char *filename, const char *mode );
- fopen() didefinisikan di stdio.h
- fopen() mengembalikan pointer ke awal buffer area. Null akan dikembalikan jika file tidak dapat dibuka.
- Possible mode value :
“r” : membuka file untuk dibaca.
“w” : membuat/menulis file.
“a” : membuka file untuk menambahkan data.
“r+” : membuka file untuk dibaca/ditulis.
“w+” : membuat file untuk dibaca/ditulis.
“a+” : membuka file untuk dibaca/ditambahkan.
“rb” : membuka file (binari) untuk dibaca.
“wb” : membuat file (binari) untuk ditulis.
Close File
Menutup file menggunakan fclose():
int fclose (FILE *stream);
- fclose() didefinisikan di <stdio.h>
- fclose() akan return/mengembalikan nol(0) jika berhasil, dan EOF (end of file==-1) jika error.
- fclose () akan merilis buffer area dan segera mengirim data yang tersisa ke file.
- fclose() akan mengembalikan jumlah stream closed jika berhasil, dan mengembalikan EOF sebagai gantinya.
Input & Output File
- fgetc (INPUT)
Syntax : int fgetc( FILE *stream );
Mengembalikan sebuah karakter ketika berhasil, dan EOF jika error.
- fputc (OUTPUT)
Syntax: int fputc( int c, FILE *stream );
Mengembalikan sebuah karakter ketika berhasil, dan EOF jika error.
- fgets (INPUT)
Syntax: char *fgets( char *string, int n, FILE *stream );
Mengembalikan sebuah string ketika berhasil, dan NULL jika error.
- fputs (OUTPUT)
Syntax: int fputs( const char *string, FILE *stream );
Mengembalikan nilai non-negatif ketika berhasil, dan EOF jika error.
- fscanf (INPUT)
Syntax: int fscanf( FILE *stream, const char *format [, argument ]... );
Mengembalikan jumlah field yang dibaca ketika berhasil, dan EOF jika error.
- fprintf (OUTPUT)
Syntax: int fprintf( FILE *stream, const char *format [, argument ]...);
Mengembalikan jumlah byte yang tertulis ketika berhasil, dan nilai negatif jika error.
- fwrite
syntax: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
Mengembalikan jumlah data byte yang tertulis ketika berhasil, dan error jika sebaliknya.
-fread
Syntax: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
- feof
Syntax : int feof( FILE *stream );
Mengembalikan nol (0) jika bukan end-of-file
Contoh menggunakan fwrite():
fwrite( &mhs, sizeof( mhs ), 1, fp );
&mhs = lokasi data origin
sizeof(mhs) = return/mengembalikan size of mhs
1 => satu kali menulis sizeof(mhs)
fp = file pointer
- Possible mode value :
“r” : membuka file untuk dibaca.
“w” : membuat/menulis file.
“a” : membuka file untuk menambahkan data.
“r+” : membuka file untuk dibaca/ditulis.
“w+” : membuat file untuk dibaca/ditulis.
“a+” : membuka file untuk dibaca/ditambahkan.
“rb” : membuka file (binari) untuk dibaca.
“wb” : membuat file (binari) untuk ditulis.
Close File
Menutup file menggunakan fclose():
int fclose (FILE *stream);
- fclose() didefinisikan di <stdio.h>
- fclose() akan return/mengembalikan nol(0) jika berhasil, dan EOF (end of file==-1) jika error.
- fclose () akan merilis buffer area dan segera mengirim data yang tersisa ke file.
- fclose() akan mengembalikan jumlah stream closed jika berhasil, dan mengembalikan EOF sebagai gantinya.
Input & Output File
- fgetc (INPUT)
Syntax : int fgetc( FILE *stream );
Mengembalikan sebuah karakter ketika berhasil, dan EOF jika error.
- fputc (OUTPUT)
Syntax: int fputc( int c, FILE *stream );
Mengembalikan sebuah karakter ketika berhasil, dan EOF jika error.
- fgets (INPUT)
Syntax: char *fgets( char *string, int n, FILE *stream );
Mengembalikan sebuah string ketika berhasil, dan NULL jika error.
- fputs (OUTPUT)
Syntax: int fputs( const char *string, FILE *stream );
Mengembalikan nilai non-negatif ketika berhasil, dan EOF jika error.
- fscanf (INPUT)
Syntax: int fscanf( FILE *stream, const char *format [, argument ]... );
Mengembalikan jumlah field yang dibaca ketika berhasil, dan EOF jika error.
- fprintf (OUTPUT)
Syntax: int fprintf( FILE *stream, const char *format [, argument ]...);
Mengembalikan jumlah byte yang tertulis ketika berhasil, dan nilai negatif jika error.
- fwrite
syntax: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
Mengembalikan jumlah data byte yang tertulis ketika berhasil, dan error jika sebaliknya.
-fread
Syntax: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
- feof
Syntax : int feof( FILE *stream );
Mengembalikan nol (0) jika bukan end-of-file
Contoh menggunakan fwrite():
fwrite( &mhs, sizeof( mhs ), 1, fp );
&mhs = lokasi data origin
sizeof(mhs) = return/mengembalikan size of mhs
1 => satu kali menulis sizeof(mhs)
fp = file pointer
Comments
Post a Comment