Мы знаем, что мы можем создать жесткую ссылку в Linux с помощью ln file1 file2
, которая сделает file2
жесткой ссылкой file1
.Как создать жесткую ссылку в Linux из программы 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
является искомым Жесткая.
Может ли кто-нибудь указать, где я совершил ошибку здесь.
Спасибо.
[man 2 link] (http://linux.die.net/man/2/link) может быть полезен. – chrk