假设我的函数接受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
.