如果我这样打开文件:
那么
可能有重复:
文件描述符和文件指针有什么区别?
如果我像这样打开文件:
FILE *fp = fopen("mr32.txr","r");
那么
fp
是文件指针还是文件描述符?它们之间有什么区别吗?可能有重复:
文件描述符和文件指针有什么区别?
如果我像这样打开文件:
FILE *fp = fopen("mr32.txr","r");
fp
是文件指针还是文件描述符?它们之间有什么区别吗?如果你询问的是文件描述符,它是指向FILE
结构体的指针。文件描述符是一个整数。FILE
结构体及其相关API是C标准的一部分,而文件描述符及其相关函数则不是。实际上,你可以互换地使用这两组函数,但是在某些默认行为上有明显的差异。你可以阅读手册来了解哪些函数需要哪些参数类型。对于具有文件描述符的系统,你通常可以使用fdopen(3)
函数从打开的文件描述符中获取一个FILE
结构体,并使用fileno(3)
函数进行反向转换。
fp是FILE指针
文件指针:
文件描述符:
基于此链接
FILE
是一个结构体,包含有关文件的信息,包括文件描述符。
fdopen
会创建一个新的FILE
对象(需要关闭,并在关闭时也关闭文件描述符),而fileno
仅仅是返回现有的底层FILE
文件描述符。 - R.. GitHub STOP HELPING ICE