库函数:
1、注意getchar()返回整型,不是字符型。
2、为了保持与过去不能同时进行读写操作的程序的向下兼容性,一个输入操作不能随后直接紧跟一个输出操作,反之依然,如果要同时进行输入和输出操作,必须在其中插入fseek函数的调用。例:
|
3、缓冲输出和内存分配:
可通过setbuf函数控制程序的缓冲输出。
|
这个是不对的。buf最后一次被清空是在什么时候?答案是在main函数结束之后,作为程序交回控制给操作系统之前C运行时库所必须进行的清理工作的一部分。但是在此之前buf已经被释放。
解决方法一是加上static 声明。也可以把buf声明完全移到main函数之外。第二种办法是动态分配缓冲区,在程序中并不主动释放分配的缓冲区
4、不能直接使用errno检测错误,应先检测作为错误指示的返回值,确定程序已经执行失败。然后,再检查errno,搞清原因。
/* 调用库函数 */
if(返回的错误值)
检查errno