可能重复:
Getting Filename from file descriptor in C有没有办法从`FILE *`获取文件名?
有一个简单的和(合理的),便携式获得从FILE*
文件名的方法是什么?
我打开一个文件,使用f = fopen(filename, ...)
,然后传递f
各种其他功能,其中一些可能会报告错误。我想在错误消息中报告文件名,但不要传递额外的参数。
我可以创建一个自定义包装struct { FILE *f, const char *name }
,但是有没有更简单的方法? (如果FILE*
未使用fopen
打开,我不关心结果。)
重复http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c – 2011-02-01 12:12:39
没有标准的方式,我知道的; `freopen`可以让你改变读/写和二进制/正常模式,但是如果你想为自己的名字命名(比如打印一条错误信息),那么你运气不好。 – dmckee 2011-02-01 12:13:12