读书人

文件指针有关问题

发布时间: 2013-01-11 11:57:35 作者: rapoo

文件指针问题
怎么输出文件指针对应文件的文件名呢?

是linux,命令提示符下编程,文件名仅为英文字母

C/C++ code
?
1
2
3
4
void output_file_name (FILE *f1, FILE *f2)
{
//在这里输出f1的文件名,怎么搞?
}

[解决办法]
GetFileInformationByHandleEx
直接定位/proc/pid/fd目录下的符号链接文件就可以了。

void output_file_name(FILE* fp)
{
char target_path[256];
char file_path[256];
int fd=fileno(fp);
pid_t pid=getpid();

sprintf(file_path,"/proc/%d/fd/%d",pid,fd);
int len=readlink(file_path,target_path,256);
if(len==-1){
printf("readlink error!");
return;
}
target_path[len]='\0';
printf("Path=%s\n",target_path);

}

读书人网 >C++

热点推荐