假设我的函数接受a FILE*并且它想知道底层文件是如何打开的 - 具体是哪个mode(例如r或者rb)传入fopen().
mode如果代码只传递FILE*已经打开的文件,我的代码怎么能找到它?
在类Unix系统上,您可以使用它fcntl(fileno(fp), F_GETFL, &flags)来检索底层文件描述符的标志.使用O_ACCMODE掩模以获得文件的访问模式,这是一个O_RDONLY,O_WRONLY,O_RDWRD和O_APPEND对应于传递到模式字符串值fopen.