如何从 FILE* 中获取文件名?

5

在我的类中,我有一个FILE* ascii_file;数据成员,它总是通过类构造函数初始化。如何获取ascii_file的完整路径?我不想存储有关文件的更多信息,只想使用ascii_file,并希望它能在Windows、Linux和Solaris上工作。


你不能在构造函数中添加文件名参数的原因是什么? - Ivo Wetzel
2
可能是从C中的文件描述符获取文件名的重复问题。 - Svisstack
2
确定打开的文件名与此问题相同吗?https://dev59.com/REfRa4cB1Zd3GeqP9XtZ - Matt K
1
@Svisstack/@Matt Kane - 这并不是重复问题,每个问题都只有针对Linux的回答。 - Steve Townsend
2个回答

4

4
这项任务需要使用非可移植代码。
在Windows上,您可以使用_filenoFILE*转换为CRT文件描述符,然后使用_get_osfhandle将其转换为操作系统句柄。
然后,您可以像此处(使用文件映射)所示获取文件名。

从文件句柄获取文件名


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接