這個錯誤是讀取文件的方式不對
使用 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;
}