files
files
Contents
• Need for file
• Streams in ‘C’
• Bufffers Associated
• Types
• Operations
• Working with files
• File modes
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 intact 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.
• C uses a structure called FILE (defined in stdio.h) to store
the attributes of a file.
Stored file on disk
Steams in’C‘
program
stdout stderr
screen
diagram :flow of data in streams
stdin -standard input
• stdin is the stream which the programs receive its data
• the program requests transfer of data using read
operations
• not all programs require input
• unless redirected , all inputs from keyboard
stdout -standard output
• stdout is the stream where a program writes its output
data
• the program requests data transfer using the write
operation
• not all programs generate ouput
stderr -standard err
• stderr is a output stream used by a porgram to report
error messages.
• Text files
• Binary files
Text files
• Text files are the normal .txt files. You can easily create
text files using any simple text editors such as Notepad.
• When you open those files, you'll see all the contents
within the file as plain text. You can easily edit or delete
the contents.
• FILE *fptr;
Steps in Processing a File
• Create the stream via a pointer variable using the FILE
structure: FILE *p;
• Open the file, associating the stream name with the file
name.
• Read or write the data.
• Close the file.
The basic file functions are
•
• It makes the connection between the physical file and the
stream.
• It creates “a program file structure to store the
information” C needs to process the file.
• Syntax: filepointer=fopen(“filename”, “mode”);
More On fopen The file mode tells C how the program will use the file.
• feof(fp)
• fread ()
• Declaration:
• size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
• Remarks:
• fread reads a specified number of equal-sized
• data items from an input stream into a block.
• ptr = Points to a block into which data is read
• size = Length of each item read, in bytes
• n = Number of items read
• stream = file pointer
• Example Example: #include <stdio.h> int main() { FILE *f;
• char buffer[11];
• if (f = fopen("fred.txt", “r”))
• fread(buffer, 1, 10, f);
• buffer[10] = 0;
• fclose(f);
• printf("first 10 characters of the file:\n%s\n", buffer);
• }
• return 0;
• }
• fwrite() Declaration:
• size_t fwrite(const void *ptr, size_t size, size_t n, FILE*stream);
• Remarks:
• fwrite appends a specified number of equal-sized data items to
an output file.
• ptr = Pointer to any object; the data written begins at ptr
• size = Length of each item of data
• n =Number of data items to be appended
• stream = file pointer
• Example Example: #include <stdio.h> int main() { }
• char a[10]={'1','2','3','4','5','6','7','8','9','a'};
• FILE *fs;
• fs=fopen("Project.txt","w");
• fwrite(a,1,10,fs);
• fclose(fs);
• return 0;
• }
• fseek()
• This function sets the file position indicator for the stream pointed to by
stream or you can say it seeks a specified place within a file and modify it.
• SEEK_SET Seeks from beginning of file
• SEEK_CUR Seeks from current position
• SEEK_END Seeks from end of file
• Example:
• #include <stdio.h>
• int main()
• { FILE * f; f = fopen("myfile.txt", "w"); fputs("Hello World", f);
fseek(f, 6, SEEK_SET); SEEK_CUR, SEEK_END fputs(" India", f);
fclose(f); return 0; }
• ftell() offset = ftell( file pointer );
• "ftell" returns the current position for input or output on the file
• #include <stdio.h>
• int main(void)
• {
• FILE *stream;
• stream = fopen("MYFILE.TXT", "w");
• fprintf(stream, "This is a test");
• printf("The file pointer is at byte %ld\n", ftell(stream));
• fclose(stream);
• return 0;
• }