#include <stdio.h>
#include <stdlib.h>
#include <unistd.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;
}
// 在内核中查看硬链接和软链接的区别
char buf[256];
ssize_t nbytes;
// 硬链接的inode号
nbytes = readlink("/proc/self/fd/3", buf, sizeof(buf));
if (nbytes >= 0) {
buf[nbytes] = '\0';
printf("硬链接的inode号:%s\n", buf);
} else {
printf("无法获取硬链接的inode号\n");
}
// 软链接的目标路径
nbytes = readlink("/proc/self/fd/4", buf, sizeof(buf));
if (nbytes >= 0) {
buf[nbytes] = '\0';
printf("软链接的目标路径:%s\n", buf);
} else {
printf("无法获取软链接的目标路径\n");
}
return 0;
}