C程序创建硬链接和软链接
有两种类型的链接,即文件的软链接和硬链接。 C 库有一个函数link()可以创建一个到现有文件的新硬链接。函数symlink()创建软链接。如果链接文件/路径已经存在,则不会被覆盖。函数link()和symlink() 都在成功时返回0 。如果发生任何错误,则返回-1 。否则, 'errno' (错误号)被适当地设置。
软链接:软链接(也称为符号链接)充当文件名的指针或引用。它不访问原始文件中可用的数据。如果先前的文件被删除,软链接将指向一个不再存在的文件。
硬链接:硬链接充当所选文件的副本(镜像)。它访问原始文件中可用的数据。
如果先前选择的文件被删除,文件的硬链接仍将包含该文件的数据。
创建硬链接的函数:
L = link(FILE1, FILE2), creates a hard link named FILE2 to an existing FILE1.
where, L is the value returned by the link() function.
创建软链接的函数:
sL = symlink(FILE1, FILE2), creates a soft link named FILE2 to an existing FILE1.
where, sL is the value returned by the symlink() function
程序 1:下面是创建到现有文件的硬链接的 C 程序:
C
// C program to create an Hard Link
// to the existing file
#include
#include
#include
// Driver Code
int main(int argc, char* argv[])
{
// Link function
int l = link(argv[1], argv[2]);
// argv[1] is existing file name
// argv[2] is link file name
if (l == 0) {
printf("Hard Link created"
" succuessfuly");
}
return 0;
}
C
// C program to create an Soft Link
// to the existing file
#include
#include
#include
// Driver Code
int main(int argc, char* argv[])
{
// Symlink function
int sl = symlink(argv[1], argv[2]);
// argv[1] is existing file name
// argv[2] is soft link file name
if (sl == 0) {
printf("Soft Link created"
" succuessfuly");
}
return 0;
}
输出:
程序 2:下面是创建到现有文件的硬链接的 C 程序:
C
// C program to create an Soft Link
// to the existing file
#include
#include
#include
// Driver Code
int main(int argc, char* argv[])
{
// Symlink function
int sl = symlink(argv[1], argv[2]);
// argv[1] is existing file name
// argv[2] is soft link file name
if (sl == 0) {
printf("Soft Link created"
" succuessfuly");
}
return 0;
}
输出: