C file input/output: Difference between revisions

Content deleted Content added
remove "restrict" for consistency, since *all* the parameters for fopen and freopen and restrict
m update code
Line 27:
The C standard gives two kinds of files — text files and binary files — although operating systems may or may not distinguish between the two. A ''text file'' is a file consisting of text arranged in lines with some sort of distinguishing end-of-line character or sequence (in [[Unix]], a bare linefeed character; in the [[Apple Macintosh|Macintosh]] OS, a bare carriage return; on [[DOS]] and [[Microsoft Windows]], a carriage return followed by a linefeed). When bytes are read in from a text file, an end-of-line sequence is usually mapped to a linefeed for ease in processing. When a text file is written to, a bare linefeed is mapped to the OS-specific end-of-line character sequence before writing. A ''binary file'' is a file where bytes are read in "raw," and delivered "raw," without any kind of mapping.
 
A convenient, but non-standard, way to find the length of a file in C is:
[[Category:C standard library]]
#include <stdio.h>
int main() {
int length;
FILE *f = fopen("filename", "rb");
fseek(f, 0L, SEEK_END);
length = ftell(f);
rewind(f);
fclose(f);
printf("%d\n", length);
return 0;
}
 
 
[[Category:C standard librarystdio.h]]