我注意到在C语言中,文件I/O依赖于文件描述符。然而,在一些标准库函数中(如
(我试图寻找类似的问题,但失败了,尽管我的问题似乎很初步)
write(int fd, xxxx)
),文件描述符似乎是一个整数,而在另一些函数中(如fseek(FILE *stream, xxxx)
),它表示为一个指针。
int
类型的fd和FILE *
类型是否相同?为什么C语言会留下这样的差异?(我试图寻找类似的问题,但失败了,尽管我的问题似乎很初步)
int
类型的fd和FILE *
是相同的吗?如果它们的类型不同,它们怎么可能是相同的呢?至于“为什么C语言会留下这种差异?”:实际上是没有留下的。C标准库只使用FILE
结构。整数文件描述符是POSIX的产物,与标准C完全无关。 - The Paramagnetic Croissantint fd
而有些函数需要FILE *stream
。 - xywangFILE *
不是文件描述符。 - Iharob Al Asimi