可能重复:
从文件描述符中获取文件名(C语言)
有没有一种简单且(相对)可移植的方法可以从 FILE*
中获取文件名?
我使用 f = fopen(filename, ...)
打开一个文件,然后将 f
传递给其他各种函数,其中一些可能会报告错误。我想在错误消息中报告文件名,但避免传递额外的参数。
我可以创建一个自定义包装器 struct { FILE *f, const char *name }
,但也许有更简单的方法?(如果没有使用 fopen
打开 FILE*
,我不关心结果。)
freopen
可以让你改变读/写和二进制/普通模式,但如果你只是为了名字而需要它(比如打印错误信息),那么你就没办法了。 - dmckee --- ex-moderator kitten