假设我打开/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..我做错了吗?
最佳答案
字符串 myfd
肯定不在/proc 文件系统中吗?我认为该链接是按数字命名的,因此您需要在调用 readlink()
时获取变量 myfd
的值。
关于c - 获取打开设备的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515034/