Мы знаем, что можем создать жесткую ссылку в Linux, используя ln file1 file2
, что сделает file2
жесткой ссылкой file1
.
Однако, когда я пытаюсь сделать это с помощью программы на 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
— это желаемая жесткая ссылка.
Может ли кто-нибудь указать, где я сделал ошибку здесь.
Спасибо.