ln.c revision 4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53
1#include <stdio.h>
2#include <unistd.h>
3#include <string.h>
4#include <errno.h>
5
6static int usage()
7{
8    fprintf(stderr,"ln [-s] <target> <name>\n");
9    return -1;
10}
11
12int 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