c - 获取打开设备的文件路径

标签 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..我做错了吗?

最佳答案

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

关于c - 获取打开设备的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515034/

相关文章:

c - 在C中,有没有办法获取名称与字符串匹配的多个文件的大小?

c - 如何使用 libxml2 修改现有的 xml 文件?

java - 为什么我可以在 Linux 中成功移动正在写入的文件?

c - 在C中解密文件的功能?

c - 如何根据条件简洁地分配给结构的成员?

linux - 运行空白命令后显示屏幕亮度

linux - 在 Unix/Linux 中运行两个进程

linux - 如何在 Linux 中以 root 权限运行脚本

c++ - 一个 "attach"代码如何用于嵌入式技术?(例如,将计算器程序附加到计算器。)

c - Delphi 中 C 语言中 ' unsigned char** ' 的等价物是什么