k9core/src/ln.c

44 lines
757 B
C
Raw Permalink Normal View History

2020-06-02 17:48:59 +00:00
#include <stdio.h>
#include <unistd.h>
int
main(int argc, char *argv[])
{
2020-06-02 17:48:59 +00:00
if(argc == 1)
{
printf("Usage: ln oldfile newfile\n");
return 1;
}
2020-06-02 20:53:42 +00:00
int opts, fd, fflag;
while((opts = getopt(argc, argv, "sf")) != -1)
2020-06-02 17:48:59 +00:00
{
2020-06-02 20:19:26 +00:00
switch(opts)
{
2020-06-02 20:53:42 +00:00
case 'f':
fflag=1;
case 's':
if(fflag && (access(argv[3], F_OK) != 1))
unlink(argv[3]);
int symstat = symlink(argv[2],argv[3]);
if(symstat == -1)
{
fprintf(stderr, "Symlink error!");
return 1;
}
2020-06-02 20:19:26 +00:00
break;
case '?':
printf("-%c: Argument not found", optopt);
break;
default:
fd = link(argv[1],argv[2]);
if(fd == -1)
{
fprintf(stderr,"Error creating link\n");
return 1;
}
return 0;
}
2020-06-02 17:48:59 +00:00
}
}