#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
int main() {
// 创建硬链接
if (link("original_file.txt", "hard_link.txt") == 0) {
printf("硬链接创建成功\n");
} else {
printf("硬链接创建失败\n");
return 1;
}
// 创建软链接
if (symlink("original_file.txt", "soft_link.txt") == 0) {
printf("软链接创建成功\n");
} else {
printf("软链接创建失败\n");
return 1;
}
// 获取硬链接的inode号
struct stat st;
if (stat("hard_link.txt", &st) == 0) {
printf("硬链接的inode号:%lu\n", st.st_ino);
} else {
printf("无法获取硬链接的inode号\n");
return 1;
}
// 获取软链接的目标路径
char buf[256];
ssize_t nbytes = readlink("soft_link.txt", buf, sizeof(buf));
if (nbytes >= 0) {
buf[nbytes] = '\0';
printf("软链接的目标路径:%s\n", buf);
} else {
printf("无法获取软链接的目标路径\n");
return 1;
}
return 0;
}