获取已打开设备的文件路径

时间:2012-11-22 14:41:14

标签: c linux

说我打开/ dev / ttyUSB0。现在我想使用它的文件描述符来获取它的文件路径。

int myfd;

int main(int argc, char *argv[]){
char linkname[256];
ssize_t r;

myfd = open("/dev/ttyUSB0", O_RDWR);
if(myfd<0){

    perror("open error");
    exit(1);
}

r = readlink("/proc/self/fd/myfd", linkname, sizeof(linkname)-1);

if(r<0){
    perror("lstat");
    exit(EXIT_FAILURE);
}

printf("%s\n", linkname);

close(myfd);

    return 0;
}

我应该得到的是/ dev / ttyUSB0 ..我这样做是错误的吗?

1 个答案:

答案 0 :(得分:1)

字符串myfd肯定不在/ proc文件系统中?我认为该链接以数字命名,因此在调用myfd时需要变量readlink()