Presentation is loading. Please wait.

Presentation is loading. Please wait.

File Management in C. A file is a collection of related data that a computers treats as a single unit. File is a collection of data stored permanently.

Similar presentations


Presentation on theme: "File Management in C. A file is a collection of related data that a computers treats as a single unit. File is a collection of data stored permanently."— Presentation transcript:

1 File Management in C

2 A file is a collection of related data that a computers treats as a single unit. File is a collection of data stored permanently on secondary storage device. Files are 2 types Text files Binary files

3 File Management in C Text file Collection of characters that a computer can process sequentially Only in forward direction A text files is usually opened for only one kind of operation (reading, writing or appending) at a time Text file can only read or write one character at a time Newline character may be converted

4 File Management in C Binary file Similar to text file It is a collection of bytes (in c bytes and characters are same) No special processing of the data occurs It may be read from or write to in any manner Can processed sequentially or randomly Random accessing involves moving the current file position to an appropriate place in the file before reading or writing data.

5 File Management in C Basic file operations – Naming a file – Opening a file for reading only – Opening a file for writing only – Closing the file

6 File Management in C File name May contain two parts – Primary part – Extension part – Primary part contains maximum 8 characters – Extension part contains maximum 3 characters Examples: a.out, prog.c, temp, text.out

7 File Management in C FILE Pointer Which used to manipulate the file pointers(read pointer & write pointer) File pointer can be declared FILE *pointer; Eg FILE *fp fp – contains all information about file – Communication link between system and program

8 File Management in C File handling functions: included in the header file stdio.h fopen() fclose() getc() putc() getw() putw() fprintf() fscanf()

9 File Management in C fopen() used to create or open an existing file Syntax Filename  name of the file Mode : takes 3 values r  opening the file for reading only w  opening the file for writing only a  opening the file in append mode Eg Fp=fopen(“popo.txt”,”w”);  opening the file popo.txt for writing data file pointer= fopen(“filename”,”mode”);

10 File Management in C File mode When a file opened in r mode if the file already exist, the content will not lost, read data from beginning of the file (BOF) When a file opened in w mode if the file already exist, the content will lost, write date from the beginning of the file (BOF) When a file opened in a mode if the file already exist, the content will not lost, add more data at end of the file (EOF)

11 File Management in C

12 Additional Modes r+ (read+write) open to beginning for both reading/writing In this mode the previous record of file is not deleted w+ (write+read) same as w, we can also read record which is stored in the file a+ (append+read) same as ‘a’, we can also read record which is stored in the file

13 File Management in C fclose() File must be closed as soon as all operations on it completed To ensures – All outstanding information associated with file flushed out from buffers – All links to file broken – Accidental misuse of file prevented If want to change mode of file, then first close and open again

14 File Management in C fclose() Syntax: fclose(file_pointer); Example: FILE *p1, *p2; p1 = fopen(“INPUT.txt”, “r”); p2 =fopen(“OUTPUT.txt”, “w”); …….. fclose(p1); fclose(p2); pointer can be reused after closing

15 File Management in C getc() – read a character from the file putc() – write a character into the file getw() – read integer from the file putw() – write integer into the file fprintf() – write set of data values into the file fscanf() – read set of data values from the file

16 File Management in C handle one character at a time like getc() and putchar() syntax: Eg : putc(c,fp); c  char variable, fp  file pointer syntax: Eg: c=getc(fp); c  char variable, fp  file pointer file pointer moves by one character position after every getc() and putc() getc() returns end-of-file marker EOF when file end reached putc(character,file pointer); Character variable=getc(file pointer);

17 File Management in C Program to read/write using getc() & putc() #include main() {FILE *f1; char c; f1= fopen(“INPUT.txt”, “w”); /* open file for writing */ while((c=getchar()) != ‘*’) /*get char from keyboard until ‘*’ */ putc(c,f1); /*write a character to INPUT */ fclose(f1); /* close INPUT */ f1=fopen(“INPUT.txt”, “r”); /* reopen file */ while((c=getc(f1))!=EOF) /*read character from file INPUT*/ printf(“%c”, c);/* print character to screen */ fclose(f1); } /*end main */

18 File Management in C Multi file Accessing (Copy the content of one file to another) #include main() {FILE *f1,*f2; char c; f1= fopen(“INPUT.txt”, “w”); /* open file for writing */ while((c=getchar()) != ‘*’) /*get char from keyboard until ‘*’ */ putc(c,f1); /*write a character to INPUT */ fclose(f1); /* close INPUT */ f1=fopen(“INPUT.txt”, “r”); /* reopen file */ f2=fopen(“copy.txt”,”w”); // open to write data while((c=getc(f1))!=EOF) /*read character from file INPUT*/ putc(c,f2);/* copy data to second file */ fclose(f1); fclose(f2); }

19 File Management in C getw() and putw() getw() read an integer from the file putw() write an integer into the file putw() syntax: Eg : putc(c,fp); c  int variable, fp  file pointer syntax: Eg: c=getw(fp); c  int variable, fp  file pointer file pointer moves by one character position after every getw() and putw() getw() returns end-of-file marker EOF when file end reached putw(integer,file pointer); int variable=getw(file pointer);

20 C program using getw(), putw() main() { int i; FILE *f1; f1 = fopen("int_data.txt","w"); // open files for(i=10;i<15;i++) // write integers to files { putw(i,f1); } fclose(f1); f1 = fopen("int_data.txt","r"); while((i=getw(f1))!=EOF) { printf(“%d\n",i); } fclose(f1); getch(); }

21 File Management in C fscanf() fprintf() fscanf() : read mixed type of data from the file fprintf() : write mixed type of data into the file fscanf() syntax: Eg : fscanf(fp,”%d%s”, &a,b); a  int a; b  char b[20]; fprintf() Syntax : Eg : fprintf(fp,”%d %s’,a,b); a  int a=10; b  char b[20]=“ajith”; fscanf(fp,”control string”,&variable list); fprintf(fp,”control string”,variable list);

22 C program using fscanf(), fprintf() main() { int a; char name[20]; FILE *fp; fp=fopen(“data.txt”,”w”); printf(“enter no and aname”); scanf(“%d%s”,&a,name); fprintf(fp,”%d %s”,a,name); fclose(f2); fp=fopen(“data.txt”,”r”); fscanf(fp,“%d%s”,&a,name); printf(“\ndata in the file %d %s”,a,name); fclose(fp); getch(); fclose(f2); }

23 Binary files (Random files) Jump to a given position (byte number) in a file without reading all the previous data For random accessing files, different functions are Ftell()  return the position of file pointer Rewind()  move the file pointer to BOF Fseek()  move the file pointer to the desire location

24 Binary files (Random files) ftell(fp) returns current byte position in file rewind(fp) resets position to start of file fseek (file-pointer, offset, position); position: 0 (beginning), 1 (current), 2 (end) offset: number of locations to move from position Example: fseek(fp,-m, 1); // move back by m bytes from current position fseek(fp,m,0); //move to m byte fseek(fp, -10, 2); // move 10 bytes backword

25 Random access to files main() { FILE *fp; char c; clrscr(); fp=fopen("check.txt","w"); while((c=getchar())!='*') { putc(c,fp); } printf("\n position of file pointer %d",ftell(fp)); rewind(fp); printf("\n position of file pointer %d",ftell(fp)); fclose(fp); fp=fopen("check.txt","r"); while((c=getc(fp))!=EOF) { printf("%c",c); fseek(fp,2,1); } getch(); }

26 File Management in C fread() fwrite) Used for reading/writing block of data from/to the file. These functions accept four arguments. The first argument is Pointer to a block of memory used for reading/writing the data. The secong argument is Size, in bytes, of each element to be read/write The third argument is Number of elements, each one with a size of size bytes. The fourth argument is file pointer

27 File Management in C fread() fwrite) Syntax Eg char c[20]=“popo”; FILE *fp; fp=fopen(“data.txt”,”w”); fwrite(c,1,3,fp); c  pointer, 1  size of each char 3  no of char to write, fp  file pointer The content of data.txt  pop fwrite ( void * ptr, size, count, FILE pointer); fread ( void * ptr, size, count, FILE pointer);


Download ppt "File Management in C. A file is a collection of related data that a computers treats as a single unit. File is a collection of data stored permanently."

Similar presentations


Ads by Google