返回值的宏定义问题

返回值NULL和-1区别

Posted by Dandan on March 8, 2019

区别

当用到文件IO以及标准IO时,有的返回EOF,例如fgetc, 有的返回NULL,例如fopen, 有的返回-1,例如open。
实际上,这个返回值和函数的针对描述的类型有关,例如fgetc正确时返回一个字符,当读取完成后返回错误,EOF代表一个字符,在宏定义中#define EOF (-1), fopen返回值类型是,文件指针,所以是NULL, 在宏定义中#define NULL 0, open定义的是文件描述符,返回值是整型,所以打开文件失败时是-1。