13.1 和文件进行通信
文本视图和二进制视图 :在文本视图中,程序看到的内容和二进制的内容可能不同,例如MS-DOS文本文件用回车符和换行符的组合/r/n来表示行尾,Macintosh用一个回车符/r来表示行尾。C程序使用一个/n表示行尾。所以,如果C程序以文本视图模式处理一个MS-DOS文本文件,在读取文件时它会将/r/n转换为/n,在写入文件时它会将/n转换成为/r/n.
UNIX仅采用一种文件结构,这两种视图在UNIX实现中是相同的。
C程序自动为您打开3个文件,标准输入,标准输出和标准错误输出。默认的标准输入通常为键盘,默认的标准输出和标准错误输出通常为显示器。
例 13.1:
要知道某些操作系统不能识别argv[0],所以这一用法并非完全可移植。
exit() 函数关闭所有打开的文件并终止程序。参数会被传递给一些操作系统。通常的约定是正常终止的程序传递值0,非正常终止的程序传递非0值。ANSI C规定的使用值0或宏EXIT_SUCCESS来指示程序成功终止,使用宏EXIT_FAILURE指示程序非成功终止,在stdlib.h文件中。为了获得最大的可移植性,应该使用宏EXIT_SUCCESS和EXIT_FAILURE.
在最初调用的main()中使用return 0和exit(0)的效果相同,但是如果main()在一个递归程序中,exit()仍然会终止程序,单return将控制权交给递归的前一级,直到最初的哪一级,此时return才会终止程序。return和exit()的另一个区别在于,即使在main()以外的函数中调用exit(),它也将终止程序。
fopen() 函数,打开文件,在stdio.h中声明。它的第一个参数是要打开的文件名,更确切地说,是包含该文件名的字符串的地址 ,第二个参数是用于指定文件打开模式的一个字符串,可以是“r” “w” “a” “r+” "w+" "a+"等,还有“rb” “wb”。。等和前面的模式相似,只是使用二进制模式而非文本模式。对于UNIX和Linux,带b字母的模式和对应的不带b字母的模式是相同的。注意,使用"w"模式打开一个已有的文件,文件内容将被删除,以便程序以一个空文件开始操作。
函数成功地打开一个文件后,返回一个文件指针,若打开失败,返回空指针NULL.
文件结尾 :EOF
---------------------------------csdn的代码真烂那。。。。代码框显示不正常也就罢了,连删都删不去那。