Skip to content

Commit 6bf2e5c

Browse files
author
rsc
committed
add ln
1 parent c88bf23 commit 6bf2e5c

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ _rm : rm.o $(ULIB)
105105
$(LD) -N -e main -Ttext 0 -o _rm rm.o $(ULIB)
106106
$(OBJDUMP) -S _rm > rm.asm
107107

108+
_ln : ln.o $(ULIB)
109+
$(LD) -N -e main -Ttext 0 -o _ln ln.o $(ULIB)
110+
$(OBJDUMP) -S _ln > ln.asm
111+
108112
_sh : sh.o $(ULIB)
109113
$(LD) -N -e main -Ttext 0 -o _sh sh.o $(ULIB)
110114
$(OBJDUMP) -S _sh > sh.asm
@@ -116,7 +120,7 @@ _zombie: zombie.o $(ULIB)
116120
mkfs : mkfs.c fs.h
117121
cc -o mkfs mkfs.c
118122

119-
UPROGS=usertests _echo _cat _init _kill _ls _mkdir _rm _sh _zombie
123+
UPROGS=usertests _echo _cat _init _kill _ln _ls _mkdir _rm _sh _zombie
120124
fs.img : mkfs README $(UPROGS)
121125
./mkfs fs.img README $(UPROGS)
122126

ln.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#include "types.h"
2+
#include "stat.h"
3+
#include "user.h"
4+
5+
int
6+
main(int argc, char *argv[])
7+
{
8+
if(argc != 3){
9+
printf(2, "Usage: ln old new\n");
10+
exit();
11+
}
12+
if(link(argv[1], argv[2]) < 0)
13+
printf(2, "link %s %s: failed\n", argv[1], argv[2]);
14+
exit();
15+
}

0 commit comments

Comments
 (0)