SlideShare a Scribd company logo
1 of 27
File Management in C
Ravinder Kamboj
Assistant Professor
Department of Comp. App.
LCET, Katani Kalan
Index
• Console Input / Output
• Real life applications
• Files
• Defining and opening files
• Modes of file opening
• Closing a file
• Input / Output operations on Files
• Error handling during file operations
• Random access to files
Console oriented Input/Output
• Console oriented – use terminal (keyboard/screen)
• scanf(“%d”,&i) – read data from keyboard
• printf(“%d”,i) – print data to monitor
• Problems with console oriented I/O:
– Suitable only for small volumes of data
– Data lost when program terminated
Real-life applications
• Large data volumes
• E.g. Data of Employees, Data of customers for a bank, Data of
students for an institute, etc….
• Need for flexible approach to store/retrieve data.
Files
• File – place on disc where group of related data is stored
– E.g. your C programs, executable files, text files , data files.
• High-level programming languages support file operations
– Naming a file
– Opening a file
– Reading data from file
– Writing data to a file
– Closing a file
Defining and opening file
• To store data file in secondary memory (disc) must specify to
OS
– Filename
– Data structure
– Purpose
• Filename
– String of characters that make up a valid filename for OS
– May contain two parts
• Primary (Name of the file)
• Optional period with extension
Examples: a.out, prog.c, temp.txt, text.out
Defining and opening file continued..
• fp
– contains all information about file
– Communication link between system and program
• Purpose
– mode defines purpose of file opening
 r open file for reading only
 w open file for writing only
 a open file for appending (adding) data
Data structure
Data structure of a file is defined as FILE.
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 (w)
– if file already exists then contents are deleted,
– else new file with specified name created
• Appending mode (a)
– if file already exists then file opened with contents safe
– else new file created
• Reading mode(r)
– if file already exists then opened with contents safe
– else error occurs.
FILE *p1, *p2;
p1 = fopen(“data”,”r”);
p2= fopen(“results”, w”);
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
• putc() – write a character
• fprintf() – write set of data values
• fscanf() – read set of data values
• getw() – read integer
• putw() – write integer
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()
Program to write data to file using putc()
#include <stdio.h>
void main()
{ FILE *f1;
char c;
clrscr();
f1= fopen("INPUT", "w"); /* open file for writing */
printf("writing Data to file named INPUTn");
while((c=getchar()) != EOF) /*get char from keyboard until CTL-Z*/
putc(c,f1); /*write a character to INPUT */
fclose(f1); /* close INPUT */
getch();
}
Writing data to INPUT file
Content of INPUT file
Reading data from INPUT file using getc()
#include<stdio.h>
void main()
{
FILE *f1;
char c;
f1=fopen("INPUT", "r");/* open file in read mode */
printf("nnReading data fro INPUT filen");
while((c=getc(f1))!=EOF) /*read character from file INPUT*/
printf("%c", c); /* print character to screen */
fclose(f1);
getch();
}
Data from INPUT file
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 %fn”, 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
#include<stdio.h>
#include<conio.h>
struct student
{
char name[10];
int rollno;
};
void main()
{
struct student stu;
FILE *in,*out;
clrscr();
in = fopen("studata.txt", "a");//File is opened in
append mode
printf("Writing data to studata Filen");
printf("Enter Name and Rollno:t");
scanf("%s %d", stu.name, &stu.rollno);
fprintf(in,"%s %d", stu.name, stu.rollno);//Writing
data to file
fclose(in);
printf("nReading data from studata filenn");
out= fopen("studata.txt", "r");
do
{
fscanf(out,"%s %d",
stu.name,&stu.rollno);//Reading from file
printf("%s %dn", stu.name, stu.rollno);
}
while( !feof(out) );
fclose(out);
getch();
}
Data of studata file
Data in studata file
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, data stored in
binary format native to local system
• getw() returns end-of-file marker EOF when file end reached
Errors that occur during I/O
• Typical errors that occur
– trying to read beyond end-of-file
– trying to use a file that has not been opened
– perform operation on file not permitted by ‘fopen’ mode
– open file with invalid filename
– write to write-protected file
Error handling
• given file-pointer, check if EOF reached, errors while handling
file, problems opening file etc.
• check if EOF reached: feof()
• feof() takes file-pointer as input, returns nonzero if all data
read and zero otherwise
if(feof(fp))
printf(“End of datan”);
• ferror() takes file-pointer as input, returns nonzero integer if
error detected else returns zero
if(ferror(fp) !=0)
printf(“An error has occurredn”);
Error while opening file
• if file cannot be opened then fopen returns a NULL pointer
• Good practice to check if pointer is NULL before proceeding
fp = fopen(“input.dat”, “r”);
if (fp == NULL)
printf(“File could not be opened n ”);
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
File Management in C: Opening, Reading, Writing and Error Handling

More Related Content

What's hot (20)

Data file handling in python introduction,opening & closing files
Data file handling in python introduction,opening & closing filesData file handling in python introduction,opening & closing files
Data file handling in python introduction,opening & closing files
 
File Handling Python
File Handling PythonFile Handling Python
File Handling Python
 
File handling in c++
File handling in c++File handling in c++
File handling in c++
 
Python reading and writing files
Python reading and writing filesPython reading and writing files
Python reading and writing files
 
Java I/O
Java I/OJava I/O
Java I/O
 
Basic data types in python
Basic data types in pythonBasic data types in python
Basic data types in python
 
File Handling In C++
File Handling In C++File Handling In C++
File Handling In C++
 
File Handling in Python
File Handling in PythonFile Handling in Python
File Handling in Python
 
Control Structures in Python
Control Structures in PythonControl Structures in Python
Control Structures in Python
 
file handling c++
file handling c++file handling c++
file handling c++
 
08. handling file streams
08. handling file streams08. handling file streams
08. handling file streams
 
Python-Encapsulation.pptx
Python-Encapsulation.pptxPython-Encapsulation.pptx
Python-Encapsulation.pptx
 
Files in c++
Files in c++Files in c++
Files in c++
 
Java Tokens
Java  TokensJava  Tokens
Java Tokens
 
File handling in c++
File handling in c++File handling in c++
File handling in c++
 
Features of 'c' program
Features of 'c' programFeatures of 'c' program
Features of 'c' program
 
C Programming Unit-5
C Programming Unit-5C Programming Unit-5
C Programming Unit-5
 
Java IO
Java IOJava IO
Java IO
 
Data file handling in python reading & writing methods
Data file handling in python reading & writing methodsData file handling in python reading & writing methods
Data file handling in python reading & writing methods
 
pointer-to-object-.pptx
pointer-to-object-.pptxpointer-to-object-.pptx
pointer-to-object-.pptx
 

Viewers also liked

Posttranslationmodification new new new new
Posttranslationmodification new new new newPosttranslationmodification new new new new
Posttranslationmodification new new new newSandeep Thapa
 
User defined functions in C
User defined functions in CUser defined functions in C
User defined functions in CHarendra Singh
 
C programming project by navin thapa
C programming project by navin thapaC programming project by navin thapa
C programming project by navin thapaNavinthp
 
C++ Programming Language
C++ Programming Language C++ Programming Language
C++ Programming Language Mohamed Loey
 
Jeffrey Sachs
Jeffrey SachsJeffrey Sachs
Jeffrey Sachsrosiem7
 
Hsu Presentation
Hsu PresentationHsu Presentation
Hsu Presentationsealt
 
Combine may 2013 for web
Combine may 2013 for webCombine may 2013 for web
Combine may 2013 for webPUNJABI SUMAN
 
Importance of history
Importance of historyImportance of history
Importance of historyping1973
 
Chemo senses
Chemo sensesChemo senses
Chemo sensesNou Vang
 
I AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HR
I AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HRI AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HR
I AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HRLaurie Ruettimann
 
المعارض والمؤتمرات شهر يونيو
المعارض والمؤتمرات شهر يونيوالمعارض والمؤتمرات شهر يونيو
المعارض والمؤتمرات شهر يونيوPalestinian Business Forum
 
OpenGL ES based UI Development on TI Platforms
OpenGL ES based UI Development on TI PlatformsOpenGL ES based UI Development on TI Platforms
OpenGL ES based UI Development on TI PlatformsPrabindh Sundareson
 
Seres Dos CartõEs
Seres Dos CartõEsSeres Dos CartõEs
Seres Dos CartõEsSérgio Luiz
 

Viewers also liked (20)

Posttranslationmodification new new new new
Posttranslationmodification new new new newPosttranslationmodification new new new new
Posttranslationmodification new new new new
 
User defined functions in C
User defined functions in CUser defined functions in C
User defined functions in C
 
C programming project by navin thapa
C programming project by navin thapaC programming project by navin thapa
C programming project by navin thapa
 
C++ Programming Language
C++ Programming Language C++ Programming Language
C++ Programming Language
 
Tokens in C++
Tokens in C++Tokens in C++
Tokens in C++
 
Cig tm future
Cig tm futureCig tm future
Cig tm future
 
Jeffrey Sachs
Jeffrey SachsJeffrey Sachs
Jeffrey Sachs
 
ppppk
ppppkppppk
ppppk
 
article198
article198article198
article198
 
Hsu Presentation
Hsu PresentationHsu Presentation
Hsu Presentation
 
Combine may 2013 for web
Combine may 2013 for webCombine may 2013 for web
Combine may 2013 for web
 
Importance of history
Importance of historyImportance of history
Importance of history
 
Chemo senses
Chemo sensesChemo senses
Chemo senses
 
I AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HR
I AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HRI AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HR
I AM HR: FIVE STRATEGIC WAYS TO BREAK STEREOTYPES AND RECLAIM HR
 
المعارض والمؤتمرات شهر يونيو
المعارض والمؤتمرات شهر يونيوالمعارض والمؤتمرات شهر يونيو
المعارض والمؤتمرات شهر يونيو
 
fgfdgdfg
fgfdgdfg fgfdgdfg
fgfdgdfg
 
Purposeful Africa Final
Purposeful Africa FinalPurposeful Africa Final
Purposeful Africa Final
 
OpenGL ES based UI Development on TI Platforms
OpenGL ES based UI Development on TI PlatformsOpenGL ES based UI Development on TI Platforms
OpenGL ES based UI Development on TI Platforms
 
Seres Dos CartõEs
Seres Dos CartõEsSeres Dos CartõEs
Seres Dos CartõEs
 
Description of goods
Description of goodsDescription of goods
Description of goods
 

Similar to File Management in C: Opening, Reading, Writing and Error Handling

C-Programming File-handling-C.pptx
C-Programming  File-handling-C.pptxC-Programming  File-handling-C.pptx
C-Programming File-handling-C.pptxLECO9
 
C-Programming File-handling-C.pptx
C-Programming  File-handling-C.pptxC-Programming  File-handling-C.pptx
C-Programming File-handling-C.pptxSKUP1
 
File Handling in C Programming for Beginners
File Handling in C Programming for BeginnersFile Handling in C Programming for Beginners
File Handling in C Programming for BeginnersVSKAMCSPSGCT
 
Engineering Computers L34-L35-File Handling.pptx
Engineering Computers L34-L35-File Handling.pptxEngineering Computers L34-L35-File Handling.pptx
Engineering Computers L34-L35-File Handling.pptxhappycocoman
 
C-Programming Chapter 5 File-handling-C.ppt
C-Programming Chapter 5 File-handling-C.pptC-Programming Chapter 5 File-handling-C.ppt
C-Programming Chapter 5 File-handling-C.pptssuserad38541
 
File handling-dutt
File handling-duttFile handling-dutt
File handling-duttAnil Dutt
 
File management
File managementFile management
File managementsumathiv9
 
File management and handling by prabhakar
File management and handling by prabhakarFile management and handling by prabhakar
File management and handling by prabhakarPrabhakarPremUpreti
 
C-FILE MANAGEMENT.pptx
C-FILE MANAGEMENT.pptxC-FILE MANAGEMENT.pptx
C-FILE MANAGEMENT.pptxbanu236831
 
File handling in 'C'
File handling in 'C'File handling in 'C'
File handling in 'C'Gaurav Garg
 

Similar to File Management in C: Opening, Reading, Writing and Error Handling (20)

C-Programming File-handling-C.pptx
C-Programming  File-handling-C.pptxC-Programming  File-handling-C.pptx
C-Programming File-handling-C.pptx
 
C-Programming File-handling-C.pptx
C-Programming  File-handling-C.pptxC-Programming  File-handling-C.pptx
C-Programming File-handling-C.pptx
 
File Handling in C Programming for Beginners
File Handling in C Programming for BeginnersFile Handling in C Programming for Beginners
File Handling in C Programming for Beginners
 
Engineering Computers L34-L35-File Handling.pptx
Engineering Computers L34-L35-File Handling.pptxEngineering Computers L34-L35-File Handling.pptx
Engineering Computers L34-L35-File Handling.pptx
 
C-Programming Chapter 5 File-handling-C.ppt
C-Programming Chapter 5 File-handling-C.pptC-Programming Chapter 5 File-handling-C.ppt
C-Programming Chapter 5 File-handling-C.ppt
 
File handling-dutt
File handling-duttFile handling-dutt
File handling-dutt
 
1file handling
1file handling1file handling
1file handling
 
finally.c.ppt
finally.c.pptfinally.c.ppt
finally.c.ppt
 
Files_in_C.ppt
Files_in_C.pptFiles_in_C.ppt
Files_in_C.ppt
 
File operations in c
File operations in cFile operations in c
File operations in c
 
File management
File managementFile management
File management
 
File management and handling by prabhakar
File management and handling by prabhakarFile management and handling by prabhakar
File management and handling by prabhakar
 
637225560972186380.pdf
637225560972186380.pdf637225560972186380.pdf
637225560972186380.pdf
 
File management
File managementFile management
File management
 
C-FILE MANAGEMENT.pptx
C-FILE MANAGEMENT.pptxC-FILE MANAGEMENT.pptx
C-FILE MANAGEMENT.pptx
 
File handling in 'C'
File handling in 'C'File handling in 'C'
File handling in 'C'
 
PPS PPT 2.pptx
PPS PPT 2.pptxPPS PPT 2.pptx
PPS PPT 2.pptx
 
6. chapter v
6. chapter v6. chapter v
6. chapter v
 
File handling in C
File handling in CFile handling in C
File handling in C
 
Lecture 20 - File Handling
Lecture 20 - File HandlingLecture 20 - File Handling
Lecture 20 - File Handling
 

More from Ravinder Kamboj

More from Ravinder Kamboj (14)

Data warehouse,data mining & Big Data
Data warehouse,data mining & Big DataData warehouse,data mining & Big Data
Data warehouse,data mining & Big Data
 
DDBMS
DDBMSDDBMS
DDBMS
 
Cost estimation for Query Optimization
Cost estimation for Query OptimizationCost estimation for Query Optimization
Cost estimation for Query Optimization
 
Query processing and optimization (updated)
Query processing and optimization (updated)Query processing and optimization (updated)
Query processing and optimization (updated)
 
Query processing
Query processingQuery processing
Query processing
 
Normalization of Data Base
Normalization of Data BaseNormalization of Data Base
Normalization of Data Base
 
Architecture of dbms(lecture 3)
Architecture of dbms(lecture 3)Architecture of dbms(lecture 3)
Architecture of dbms(lecture 3)
 
Sql fundamentals
Sql fundamentalsSql fundamentals
Sql fundamentals
 
Lecture 1&amp;2(rdbms-ii)
Lecture 1&amp;2(rdbms-ii)Lecture 1&amp;2(rdbms-ii)
Lecture 1&amp;2(rdbms-ii)
 
Java script
Java scriptJava script
Java script
 
HTML Forms
HTML FormsHTML Forms
HTML Forms
 
DHTML
DHTMLDHTML
DHTML
 
CSA lecture-1
CSA lecture-1CSA lecture-1
CSA lecture-1
 
Relational database management system (rdbms) i
Relational database management system (rdbms) iRelational database management system (rdbms) i
Relational database management system (rdbms) i
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

File Management in C: Opening, Reading, Writing and Error Handling

  • 1. File Management in C Ravinder Kamboj Assistant Professor Department of Comp. App. LCET, Katani Kalan
  • 2. Index • Console Input / Output • Real life applications • Files • Defining and opening files • Modes of file opening • Closing a file • Input / Output operations on Files • Error handling during file operations • Random access to files
  • 3. Console oriented Input/Output • Console oriented – use terminal (keyboard/screen) • scanf(“%d”,&i) – read data from keyboard • printf(“%d”,i) – print data to monitor • Problems with console oriented I/O: – Suitable only for small volumes of data – Data lost when program terminated
  • 4. Real-life applications • Large data volumes • E.g. Data of Employees, Data of customers for a bank, Data of students for an institute, etc…. • Need for flexible approach to store/retrieve data.
  • 5. Files • File – place on disc where group of related data is stored – E.g. your C programs, executable files, text files , data files. • High-level programming languages support file operations – Naming a file – Opening a file – Reading data from file – Writing data to a file – Closing a file
  • 6. Defining and opening file • To store data file in secondary memory (disc) must specify to OS – Filename – Data structure – Purpose • Filename – String of characters that make up a valid filename for OS – May contain two parts • Primary (Name of the file) • Optional period with extension Examples: a.out, prog.c, temp.txt, text.out
  • 7. Defining and opening file continued.. • fp – contains all information about file – Communication link between system and program • Purpose – mode defines purpose of file opening  r open file for reading only  w open file for writing only  a open file for appending (adding) data Data structure Data structure of a file is defined as FILE. FILE *fp; /*variable fp is pointer to type FILE*/ fp = fopen(“filename”, “mode”); /*opens file with name filename , assigns identifier to fp */
  • 8. Different modes • Writing mode (w) – if file already exists then contents are deleted, – else new file with specified name created • Appending mode (a) – if file already exists then file opened with contents safe – else new file created • Reading mode(r) – if file already exists then opened with contents safe – else error occurs. FILE *p1, *p2; p1 = fopen(“data”,”r”); p2= fopen(“results”, w”);
  • 9. 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
  • 10. 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);
  • 11. Input/Output operations on files • C provides several different functions for reading/writing • getc() – read a character • putc() – write a character • fprintf() – write set of data values • fscanf() – read set of data values • getw() – read integer • putw() – write integer
  • 12. 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()
  • 13. Program to write data to file using putc() #include <stdio.h> void main() { FILE *f1; char c; clrscr(); f1= fopen("INPUT", "w"); /* open file for writing */ printf("writing Data to file named INPUTn"); while((c=getchar()) != EOF) /*get char from keyboard until CTL-Z*/ putc(c,f1); /*write a character to INPUT */ fclose(f1); /* close INPUT */ getch(); }
  • 14. Writing data to INPUT file
  • 16. Reading data from INPUT file using getc() #include<stdio.h> void main() { FILE *f1; char c; f1=fopen("INPUT", "r");/* open file in read mode */ printf("nnReading data fro INPUT filen"); while((c=getc(f1))!=EOF) /*read character from file INPUT*/ printf("%c", c); /* print character to screen */ fclose(f1); getch(); }
  • 18. 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 %fn”, 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
  • 19. #include<stdio.h> #include<conio.h> struct student { char name[10]; int rollno; }; void main() { struct student stu; FILE *in,*out; clrscr(); in = fopen("studata.txt", "a");//File is opened in append mode printf("Writing data to studata Filen"); printf("Enter Name and Rollno:t"); scanf("%s %d", stu.name, &stu.rollno); fprintf(in,"%s %d", stu.name, stu.rollno);//Writing data to file fclose(in); printf("nReading data from studata filenn"); out= fopen("studata.txt", "r"); do { fscanf(out,"%s %d", stu.name,&stu.rollno);//Reading from file printf("%s %dn", stu.name, stu.rollno); } while( !feof(out) ); fclose(out); getch(); }
  • 22. 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, data stored in binary format native to local system • getw() returns end-of-file marker EOF when file end reached
  • 23. Errors that occur during I/O • Typical errors that occur – trying to read beyond end-of-file – trying to use a file that has not been opened – perform operation on file not permitted by ‘fopen’ mode – open file with invalid filename – write to write-protected file
  • 24. Error handling • given file-pointer, check if EOF reached, errors while handling file, problems opening file etc. • check if EOF reached: feof() • feof() takes file-pointer as input, returns nonzero if all data read and zero otherwise if(feof(fp)) printf(“End of datan”); • ferror() takes file-pointer as input, returns nonzero integer if error detected else returns zero if(ferror(fp) !=0) printf(“An error has occurredn”);
  • 25. Error while opening file • if file cannot be opened then fopen returns a NULL pointer • Good practice to check if pointer is NULL before proceeding fp = fopen(“input.dat”, “r”); if (fp == NULL) printf(“File could not be opened n ”);
  • 26. 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