/*
读书笔记类型多种多样,有摘抄型的,有感想型的,有批注型的,有摘要型的……
现在正在研读《C和指针》,其中有很多我认为必要的知识点,摘抄并简单整理了一下,记录在这里。
*/
75. I/O函数以三种基本形式处理数据:单个字符、文本行和二进制数据。下表列出了用于各种I/O形式的函数或函数家族。
下表列出了各家族的函数
76. fopen函数用于打开流。
FILE *fopen( char const *name, char const *mode );
两个参数都是字符串,name是希望打开的文件或设备的名字,mode参数提示流用于只读、只写还是既读又写,以及它是文本流还是二进制流。下表列出了常用的模式。
如果fopen函数执行成功,它返回一个指向FILE结构的指针,该结构代表这个新创建的流。如果fopen函数执行失败,它就返回一个NULL指针。
应该始终检查fopen函数的返回值。如果函数失败返回NULL值,一旦不检查这个返回值,NULL指针会传递给后续的函数,如果以这个指针间接访问,就会造成失败。
77. freopen函数用于打开或重新打开一个特定的文件流。
FILE *freopen( char const *filename, char const *mode, FILE *stream );
最后一个参数就是需要打开的流,它可能是一个先前从fopen返回的流,也可能是标准流stdin、stdout或stderr. 这个函数首先试图关闭这个流,然后用指定的文件或模式重新找开这个流,如果找开失败,函数返回一个NULL值;如果打开成功,返回它的第3个参数值。
78. 流的关闭用fclose函数。
int fclose( FILE *f );
对于输出流,fclose函数在文件关闭前刷新缓冲区,如果它执行成功,fclose返回零值,否则返回EOF.
79. 任何有可能失败的操作都应进行检查,确定它是否成功执行。首先问自己两个问题:
1)如果操作成功应该执行什么?
2)如果操作失败应该执行什么?
如果两个问题的答案是不同的,那么你应该进行错误检查。只有当这两个问题的答案相同时,跳过错误检查才是合理的。
用户1761490 2014-10-22 17:49
用户1621476 2014-10-18 19:42