说我打开/ 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 ..我这样做是错误的吗?
答案 0 :(得分:1)
字符串myfd
肯定不在/ proc文件系统中?我认为该链接以数字命名,因此在调用myfd
时需要变量readlink()
的值。