added errno to ln.c

This commit is contained in:
qorg11 2020-07-28 12:52:08 +02:00
parent 0ee58ebd7b
commit c0935a1b07
No known key found for this signature in database
GPG Key ID: 343FC20A4ACA62B9
1 changed files with 26 additions and 24 deletions

View File

@ -1,10 +1,12 @@
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
int
main(int argc, char *argv[])
{
if(argc == 1)
{
printf("Usage: ln oldfile newfile\n");
@ -16,29 +18,29 @@ main(int argc, char *argv[])
if(opts == 'f') fflag=1;
switch(opts)
{
case 's':
if(fflag == 1 && (access(argv[3], F_OK) != 1)) {
if(remove(argv[3]) == -1)
rmdir(argv[3]);
}
int symstat = symlink(argv[2],argv[3]);
if(symstat == -1)
{
fprintf(stderr, "Symlink error!");
return 1;
}
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;
case 's':
if(fflag == 1 && (access(argv[3], F_OK) != 1)) {
if(remove(argv[3]) == -1)
rmdir(argv[3]);
}
int symstat = symlink(argv[2],argv[3]);
if(symstat == -1)
{
fprintf(stderr, "Symlink error!");
return 1;
}
break;
case '?':
printf("-%c: Argument not found", optopt);
break;
default:
fd = link(argv[1],argv[2]);
if(fd == -1)
{
fprintf(stderr,"Error creating link: %i = %s\n",errno,strerror(errno));
return 1;
}
return 0;
}
}
}