diff options
Diffstat (limited to 'package/toolbox/src/src/ln.c')
-rw-r--r-- | package/toolbox/src/src/ln.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/package/toolbox/src/src/ln.c b/package/toolbox/src/src/ln.c new file mode 100644 index 000000000..6d67823e8 --- /dev/null +++ b/package/toolbox/src/src/ln.c @@ -0,0 +1,34 @@ +#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 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; +} |