File Management in C. What is a File? A file is a collection of related data that a computers treats as a single unit. Computers store files to secondary.

Slides:



Advertisements
Similar presentations
Using Files Declare a variable, called file pointer, of type FILE * Use function fopen to open a named file and associate this file with the file pointer.
Advertisements

I/O means Input and Output. One way: use standard input and standard output. To read in data, use scanf() (or a few other functions) To write out data,
Files in C Rohit Khokher.
BITS Pilani, Pilani Campus TA C252 Computer Programming - II Vikas Singh File Handling.
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.
Files in C Rohit Khokher. Files in C Real life situations involve large volume of data and in such cases, the console oriented I/O operations pose two.
Chapter 11: Data Files & File Processing In this chapter, you will learn about Files and streams Creating a sequential access file Reading data from a.
File Management in C. Console oriented Input/Output Console oriented – use terminal (keyboard/screen) scanf(“%d”,&i) – read data from keyboard printf(“%d”,i)
CSCI 171 Presentation 12 Files. Working with files File Streams – sequence of data that is connected with a specific file –Text Stream – Made up of lines.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved Introduction Data files –Can be created, updated,
 2007 Pearson Education, Inc. All rights reserved C File Processing.
File I/O.
Engineering H192 - Computer Programming The Ohio State University Gateway Engineering Education Coalition Lect 6P. 1Winter Quarter I/O in C Lecture 6.
Console and File I/O - Basics Rudra Dutta CSC Spring 2007, Section 001.
V-1 University of Washington Computer Programming I File Input/Output © 2000 UW CSE.
Files Programs and data are stored on disk in structures called files Examples Turbo C++ - binary file Word binary file lab1.c - text file lab1.data.
1 Homework Introduction to HW7 –Complexity similar to HW6 –Don’t wait until last minute to start on it File Access will be needed in HW8.
20/03/01 Sudeshna Sarkar, CSE, IIT Kharagpur1 File Handling in C Lecture 17c 20/3/01.
N305: C Programming Copyright ©2006  Department of Computer & Information Science File Handling in C.
CP104 Introduction to Programming File I/O Lecture 33 __ 1 File Input/Output Text file and binary files File Input/output File input / output functions.
File Handling Spring 2013Programming and Data Structure1.
C Programming – Part 6 File Input and Output
File Handling In C By - AJAY SHARMA. We will learn about- FFile/Stream TText vs Binary Files FFILE Structure DDisk I/O function OOperations.
 2007 Pearson Education, Inc. All rights reserved C File Processing.
Introduction to Programming Using C Files. 2 Contents Files Working with files Sequential files Records.
File IO and command line input CSE 2451 Rong Shi.
CSEB114: Principle of programming Chapter 11: Data Files & File Processing.
1 File Handling. 2 Storage seen so far All variables stored in memory Problem: the contents of memory are wiped out when the computer is powered off Example:
Chapter 11: Data Files and File Processing Files and streams Creating a sequential access file Reading data from a sequential access file Using fgetc()
Chapter 7 : File Processing1 File-Oriented Input & Output CHAPTER 7.
1 CHAPTER6 CHAPTER 6. Objectives: You’ll learn about;  Introduction  Files and streams  Creating a sequential access file  Reading data from a sequential.
24-2 Perform File I/O using file pointers FILE * data-type Opening and closing files Character Input and Output String Input and Output Related Chapter:
GAME203 – C Files stdio.h C standard Input/Output “getchar()”
Files A collection of related data treated as a unit. Two types Text
CSCI N305: C Programming Copyright ©2006  Department of Computer & Information Science File Handling in C.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the basic properties and characteristics of external files ❏ To.
Lecture 20: C File Processing. Why Using Files? Storage of data in variables and arrays is temporary Data lost when a program terminates. Files are used.
 2007 Pearson Education, Inc. All rights reserved C File Processing.
Silberschatz and Galvin  C Programming Language Kingdom of Saudi Arabia Ministry of Higher Education Al-Majma’ah University College of Education.
Chapter 7 Text Input/Output Objectives
Chapter 7 Text Input/Output Objectives
RECURSION Recursion is a process where a function calls itself. main()
Chapter 22 – part a Stream refer to any source of input or any destination for output. Many small programs, obtain all their input from one stream usually.
TMF1414 Introduction to Programming
Chapter 7 Text Input/Output Objectives
File Access (7.5) CSE 2031 Fall July 2018.
File I/O.
File Handling in C.
CS111 Computer Programming
CSE1320 Files in C Dr. Sajib Datta
File Input/Output.
CSE1320 Files in C Dr. Sajib Datta
What you need for the 1st phase of project
File Handling in C.
File Management in C.
CSE1320 Files in C Dr. Sajib Datta
CSC215 Lecture Input and Output.
Beginning C Lecture 11 Lecturer: Dr. Zhao Qinpei
Programming and Data Structure
Text and Binary File Processing
File Input and Output.
File Handling.
File Access (7.5) CSE 2031 Fall January 2019.
File Handling in C.
File Access (7.5) CSE 2031 Fall February 2019.
File Handling in C.
Chapter 5 File Handling in C
Chapter 12: File I/O.
Professor Jodi Neely-Ritz University of Florida
Files Chapter 8.
Presentation transcript:

File Management in C

What is a File? A file is a collection of related data that a computers treats as a single unit. Computers store files to secondary storage so that the contents of files remain permanently when a computer shuts down. When a computer reads a file, it copies the file from the storage device to memory; when it writes to a file, it transfers data from memory to the storage device.

Files File – place on disc where group of related data is stored – E.g. your C programs, executables Basic file operations – Naming – Opening – Reading – Writing – Closing

Filename String of characters that make up a valid filename for OS May contain two parts – Primary – Optional period with extension Examples: a.out, prog.c, temp, text.out

General format for opening file fp – contains all information about file – Communication link between system and program Mode can be – r open file for reading only – w open file for writing only – a open file for appending (adding) data FILE *fp; /*variable fp is pointer to type FILE*/ fp = fopen(filename, mode); /*opens file with name filename, assigns identifier to fp */

Different modes Writing mode – if file already exists then contents are deleted, – else new file with specified name created Appending mode – if file already exists then file opened with contents safe – else new file created Reading mode – if file already exists then opened with contents safe – else error occurs. FILE *p1, *p2; p1 = fopen(data,r); p2= fopen(results, w);

More on File Open Modes

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

Closing a file File must be closed as soon as all operations on it completed 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

Closing a file pointer can be reused after closing Syntax: fclose(file_pointer); Example: FILE *p1, *p2; p1 = fopen(INPUT.txt, r); p2 =fopen(OUTPUT.txt, w); …….. fclose(p1); fclose(p2);

Input/Output operations on files C provides several different functions for reading/writing 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

getc() and putc() handle one character at a time like getchar() and putchar() syntax: putc(c,fp1); – c : a character variable – fp1 : pointer to file opened with mode w syntax: c = getc(fp2); – c : a character variable – fp2 : pointer to file opened with mode r file pointer moves by one character position after every getc() and putc() getc() returns end-of-file marker EOF when file end reached

Program to read/write using getc/putc #include main() {FILE *f1; char c; f1= fopen(INPUT, 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, r); /* reopen file */ while((c=getc(f1))!=EOF) /*read character from file INPUT*/ printf(%c, c);/* print character to screen */ fclose(f1); } /*end main */

getw() and putw() handle one integer at a time syntax: putw(i,fp1); – i : an integer variable – fp1 : pointer to file ipened with mode w syntax: i = getw(fp2); – i : an integer variable – fp2 : pointer to file opened with mode r file pointer moves by one integer position getw() returns end-of-file marker EOF when file end reached

C program using getw, putw,fscanf, fprintf #include main() { int i,sum1=0; FILE *f1; /* open files */ f1 = fopen("int_data.bin","w"); /* write integers to files in binary and text format*/ for(i=10;i<15;i++) putw(i,f1); fclose(f1); f1 = fopen("int_data.bin","r"); while((i=getw(f1))!=EOF) { sum1+=i; printf("binary file: i=%d\n",i); } /* end while getw */ printf("binary sum=%d,sum1); fclose(f1); } #include main() { int i, sum2=0; FILE *f2; /* open files */ f2 = fopen("int_data.txt","w"); /* write integers to files in binary and text format*/ for(i=10;i<15;i++) printf(f2,"%d\n",i); fclose(f2); f2 = fopen("int_data.txt","r"); while(fscanf(f2,"%d",&i)!=EOF) { sum2+=i; printf("text file: i=%d\n",i); } /*end while fscanf*/ printf("text sum=%d\n",sum2); fclose(f2); }

On execution of previous Programs $./a.out binary file: i=10 binary file: i=11 binary file: i=12 binary file: i=13 binary file: i=14 binary sum=60, $ cat int_data.txt $./a.out text file: i=10 text file: i=11 text file: i=12 text file: i=13 text file: i=14 text sum=60 $ more int_data.bin $

fscanf() and fprintf() similar to scanf() and printf() in addition provide file-pointer given the following – file-pointer f1 (points to file opened in write mode) – file-pointer f2 (points to file opened in read mode) – integer variable i – float variable f Example: fprintf(f1, %d %f\n, i, f); fprintf(stdout, %f \n, f); /*note: stdout refers to screen */ fscanf(f2, %d %f, &i, &f); fscanf returns EOF when end-of-file reached

Random access to files how to jump to a given position (byte number) in a file without reading all the previous data? 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+1)th byte in file */ fseek(fp, -10, 2); /* what is this? */ ftell(fp) returns current byte position in file rewind(fp) resets position to start of file

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(); }