您的位置:首页 > 其它

通过文件描述符获得文件路径

2014-03-20 13:17 225 查看
文件描述符可以用open()获取,具体怎么用请man 或者 google

然后我遇到一个问题就是需要用文件句柄来获得文件的路径。

因为在delete(int peer)这里只接收一个句柄参数,然后我需要remove(const char * filename)

现在只有linux下的办法:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <limits.h>

bool delete(int peer)
{
int MAXSIZE= 0xFFF;
char proclnk[0xFFF];
char filename[0xFFF];
ssize_t r; //ssize_t is int
sprintf(proclnk, "/proc/self/fd/%d", peer);
r = readlink(proclnk, filename, MAXSIZE);
filename[r] = '\0';
remove((const char*)filename);
}

bool delete(int peer)
{
char buf[1024] = {'\0'};
char filename[PATH_MAX] = {'\0'}; //PATH_MAX is define in limits.h PATH_MAX = 259
snprintf(buf, sizeof(buf), "/proc/self/fd/%d",peer);
readlink(buf,filename,sizeof(filename) -1);
remove((const char*)filename);
}

很蛋疼。。在windows底下没找到办法。。谁知道有什么办法请告诉我
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C