Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream...
-
Upload
nicholas-walton -
Category
Documents
-
view
220 -
download
1
Transcript of Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream...
![Page 1: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/1.jpg)
Lecture 8a: File I/O
BJ Furman
21MAR2011
![Page 2: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/2.jpg)
Learning Objectives
Explain what is meant by a data stream
Explain the concept of a ‘file’
Open and close files for reading and writing
![Page 3: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/3.jpg)
Data Streams Data ‘stream’
“an ordered series of bytes” (Darnell and Margolis, 1996)
Like a 1D array of characters that can flow from your program to a device or file or vice-versa
IO involves reading data from or writing data to a stream
Prior to UNIX Programmers had to handle all the intricacies and complexities of
interfacing to input and output devices, such as card readers, printers, terminals, etc.
UNIX Abstracted away the details of IO to the concept of the data stream Established standard data streams:
stdin – data coming into your program (usually from the keyboard) stdout – data going out of your program (usually to the display) stderr – for error information going out of your program
![Page 4: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/4.jpg)
File IO Need to first associate a stream with a file or
device Three streams are automatically opened and
associated with your program: stdin, stdout, stderror Ex. printf() defaults to printing to the display
To read from or write to another file stream, you need to declare a pointer to a data structure called FILE This pointer is used to read from, write to, or close the
stream Use IO functions for file operations (like fprintf())
![Page 5: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/5.jpg)
Opening a File - 1 Key steps:
Declare a pointer to FILE FILE *fp;
Provides the means to associate a file with a data stream Will be used by other functions such as fprintf()
Use fopen() function with a path to the file and a file mode as arguments
Ex. Open file_name.txt to be able to read from it fp = fopen(“file_name.txt”, “r”);
fopen() returns a pointer to the file fp stores the pointer to the file, file_name.txt “r” opens the file for reading from
Can also open a file to write to it or append to it
See reference: http://www.cppreference.com/wiki/c/io/fopen
![Page 6: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/6.jpg)
Opening a File - 2 Other modes
Good idea to test that the file was opened without error fopen() will return NULL if there is an error opening the file
fp = fopen(“file_name.txt”, “r”); if(fp == NULL) { printf("Error: can't open file to read\n"); return 1;}
Source: http://www.cppreference.com/wiki/c/io/fopen
![Page 7: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/7.jpg)
Closing a File Function header:
int fclose(FILE *fp); Good idea to test the file was closed without
error Test the return value of fclose
fclose() will return EOF if there is an error closing the file
if(fclose(fp) == EOF) { printf("Error closing file\n"); return 1;} It is best practice to close all files that you opened,
somewhere in your program
![Page 8: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/8.jpg)
Arrays and File I/O
Arrays are often used with data consisting of many elements Often too tedious to handle I/O by keyboard
and monitor File I/O is used instead
File I/O and array example file_I_O.c
![Page 9: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/9.jpg)
Review
![Page 10: Lecture 8a: File I/O BJ Furman 21MAR2011. Learning Objectives Explain what is meant by a data stream Explain the concept of a ‘file’ Open and close files.](https://reader036.fdocuments.net/reader036/viewer/2022082505/56649f4d5503460f94c6df24/html5/thumbnails/10.jpg)
References Darnell, P. A. & Margolis, P. E. (1996) C, a
software engineering approach, 3rd ed., Springer, New York, p. 327.
http://www.cppreference.com/wiki/c/io/fopen, Visited 23OCT2010.
http://en.wikipedia.org/wiki/Standard_streams, Visited 23OCT2010.