$(LD) -N -e main -Ttext 0 -o _rm rm.o $(ULIB)
$(OBJDUMP) -S _rm > rm.asm
+_ln : ln.o $(ULIB)
+ $(LD) -N -e main -Ttext 0 -o _ln ln.o $(ULIB)
+ $(OBJDUMP) -S _ln > ln.asm
+
_sh : sh.o $(ULIB)
$(LD) -N -e main -Ttext 0 -o _sh sh.o $(ULIB)
$(OBJDUMP) -S _sh > sh.asm
mkfs : mkfs.c fs.h
cc -o mkfs mkfs.c
-UPROGS=usertests _echo _cat _init _kill _ls _mkdir _rm _sh _zombie
+UPROGS=usertests _echo _cat _init _kill _ln _ls _mkdir _rm _sh _zombie
fs.img : mkfs README $(UPROGS)
./mkfs fs.img README $(UPROGS)
--- /dev/null
+#include "types.h"
+#include "stat.h"
+#include "user.h"
+
+int
+main(int argc, char *argv[])
+{
+ if(argc != 3){
+ printf(2, "Usage: ln old new\n");
+ exit();
+ }
+ if(link(argv[1], argv[2]) < 0)
+ printf(2, "link %s %s: failed\n", argv[1], argv[2]);
+ exit();
+}