• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <string.h>
4 #include <errno.h>
5 
usage()6 static int usage()
7 {
8     fprintf(stderr,"ln [-s] <target> <name>\n");
9     return -1;
10 }
11 
ln_main(int argc,char * argv[])12 int ln_main(int argc, char *argv[])
13 {
14     int symbolic = 0;
15     int ret;
16     if(argc < 2) return usage();
17 
18     if(!strcmp(argv[1],"-s")) {
19         symbolic = 1;
20         argc--;
21         argv++;
22     }
23 
24     if(argc < 3) return usage();
25 
26     if(symbolic) {
27         ret = symlink(argv[1], argv[2]);
28     } else {
29         ret = link(argv[1], argv[2]);
30     }
31     if(ret < 0)
32         fprintf(stderr, "link failed %s\n", strerror(errno));
33     return ret;
34 }
35