下面是我创建Hardlink和Softlink的代码...
代码(文件名:b.c):
#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
int main(int argc, char*argv[])
{
if(argc==3)
{
printf("Hard linking %s and %s",argv[1],argv[2]);
if(link(argv[1],argv[2])==0)
printf("\nHard link created");
else
printf("\nLink not created");
}
else if(argc==4)
{
printf("Soft linking %s and %s",argv[1],argv[2]);
if(symlink(argv[1],argv[2])==0)
printf("\nSoft link created");
else
printf("\nLink not created");
}
}
相同的代码在Ubuntu(Linux)中也可以正常工作
我收到此错误(我在Windows 10中使用MiNGW C编译器):
b.c: In function 'main':
b.c:12:6: warning: implicit declaration of function 'link'; did you mean 'unlink'? [-Wimplicit-function-declaration]
12 | if(link(argv[1],argv[2])==0)
| ^~~~
| unlink
b.c:20:6: warning: implicit declaration of function 'symlink' [-Wimplicit-function-declaration]
20 | if(symlink(argv[1],argv[2])==0)
| ^~~~~~~
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe:
C:\Users\vbpat\AppData\Local\Temp\cc2r6Yv5.o:b.c:(.text+0x50): undefined reference to `link'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe:
C:\Users\vbpat\AppData\Local\Temp\cc2r6Yv5.o:b.c:(.text+0xb6): undefined reference to `symlink'
collect2.exe: error: ld returned 1 exit status