通过文件描述符获得文件路径
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底下没找到办法。。谁知道有什么办法请告诉我
然后我遇到一个问题就是需要用文件句柄来获得文件的路径。
因为在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底下没找到办法。。谁知道有什么办法请告诉我
相关文章推荐
- Android 视频开发中如何通过url或者本地视频文件路径获得视频的第一帧图片
- 通过文件路径获得文件大小
- 通过快捷方式lnk获得文件真实路径
- 通过NSHomeDirectory获得文件路径
- linux中通过文件描述符获取文件绝对路径的方法
- html 通过js获得文件路径(适用于ie)
- 通过 js 获得文件上传路径
- android通过文件描述符得到文件路径
- 通过文件句柄获得文件路径
- 通过js获得选择文件的绝对路径
- C#控制台基础 通过查看属性获得文件的绝对路径
- linux中通过文件描述符获取文件绝对路径
- action中通过javascript获取jsp页面中的文件上传路径
- 小秀:如何在获得了文件路径以后获得文件名称的方法!
- java 文件获得项目的路径
- AE中获得datalayer所对应的data的文件路径和文件名
- 通过路径获取媒体文件信息
- java获得文件路径
- 通过Socket方式上传文件后服务器迟迟不返回文件保存路径
- linux下通过tomcat访问某路径下的文件