| #include <stdio.h> | |
| #include <unistd.h> | |
| #include <string.h> | |
| #include <errno.h> | |
| static int usage() | |
| { | |
| fprintf(stderr,"ln [-s] <target> <name>\n"); | |
| return -1; | |
| } | |
| int ln_main(int argc, char *argv[]) | |
| { | |
| int symbolic = 0; | |
| int ret; | |
| if(argc < 2) return usage(); | |
| if(!strcmp(argv[1],"-s")) { | |
| symbolic = 1; | |
| argc--; | |
| argv++; | |
| } | |
| if(argc < 3) return usage(); | |
| if(symbolic) { | |
| ret = symlink(argv[1], argv[2]); | |
| } else { | |
| ret = link(argv[1], argv[2]); | |
| } | |
| if(ret < 0) | |
| fprintf(stderr, "link failed %s\n", strerror(errno)); | |
| return ret; | |
| } |