这个错误是读取文件的方式不对
使用 ls -alth 查看详情
是一个链接,可以使用readlink 命令读取之;
类似的还有
也可以使用readlink函数进行读取
man 2 readlink 查看使用方式
下面给个例子
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define PATH_MAX 64
int main() {
char result_path[PATH_MAX] = {0};
ssize_t size = readlink("/proc/22657/fd/3", result_path, sizeof(result_path) - 1);
if (size > 0) {
printf("%s\n", result_path);
} else {
printf("Could not read path");
return -1;
}
char * inode = strndup(result_path + 8, strlen(result_path) - 9);
printf("inode = %s\n", inode);
free(inode);
return 0;
}