man文档中定义了fopen返回FILE指针,可是我也经常看到这种写法:
int fd = fopen(filename, "a+");
而且这种写法也是可以正常工作的,有点纳闷,虽然指针就是整型,可是这样不会引起隐患吗?为什么有那么多的程序这样写?
fd是文件描述符的缩写,所以open返回的是文件描述符,fopen是文件指针,
一个是系统调用,一个是库函数,别搞混了
内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回
一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。