我们知道在Linux中可以使用“ln file1 file2”创建硬链接,这将使“file2”成为“file1”的硬链接。
但是当我尝试使用C程序执行此操作时,遇到了一些问题。下面是C代码。
但是当我尝试使用C程序执行此操作时,遇到了一些问题。下面是C代码。
#include<stdio.h>
#include<string.h>
#include<unistd.h>
int main(int argc, char *argv[])
{
if ((strcmp (argv[1],"ln")) == 0 )
{
char *myargs[4];
myargs[0] = "ln";
myargs[1] = argv[3];
myargs[2] = argv[4];
myargs[3] = NULL;
execvp(myargs[0], myargs);
printf("Unreachable code\n");
}
return 0;
}
使用gcc编译此程序后,按以下方式运行它。
$ ./a.out ln file1 file2
ln: failed to access ‘file2’: No such file or directory
$
这里存在file1
,而file2
是所需的硬链接。
有人能指出我在这里犯了什么错误吗?
谢谢。