ln -s source destとln source destの形式に対応。
#include < unistd.h >
#include < stdio.h >
#include < string.h >
int main(int argc, char **argv)
{
int s_flag;
if (
argc <= 2 || argc >= 5 ||
(s_flag = (strcmp(argv[1], "-s")==0), argc == 3 && s_flag)|| (argc == 4 && !s_flag))
{
fprintf(stderr, "Usage: %s [-s] source dest\n", argv[0]);
return 1;
}
if (s_flag){
if (symlink(argv[2], argv[3]) < 0){
perror("symlink");
return 1;
}
} else {
if (link(argv[1], argv[2])< 0){
perror("link");
return 1;
}
}
return 0;
}