xref: /csrg-svn/sys/i386/stand/ls.c (revision 41079)
1*41079Swilliam /*-
2*41079Swilliam  * Copyright (c) 1990 The Regents of the University of California.
3*41079Swilliam  * All rights reserved.
4*41079Swilliam  *
5*41079Swilliam  * This code is derived from software contributed to Berkeley by
6*41079Swilliam  * William Jolitz.
7*41079Swilliam  *
8*41079Swilliam  * %sccs.include.noredist.c%
9*41079Swilliam  *
10*41079Swilliam  *	@(#)ls.c	7.1 (Berkeley) 04/24/90
11*41079Swilliam  */
12*41079Swilliam 
13*41079Swilliam #include "../h/param.h"
14*41079Swilliam #include "../h/inode.h"
15*41079Swilliam #include "../h/fs.h"
16*41079Swilliam #undef KERNEL
17*41079Swilliam #include "../h/dir.h"
18*41079Swilliam #include "saio.h"
19*41079Swilliam 
20*41079Swilliam char line[100];
21*41079Swilliam 
main()22*41079Swilliam main()
23*41079Swilliam {
24*41079Swilliam 	int i;
25*41079Swilliam 
26*41079Swilliam 	while (1) {
27*41079Swilliam 		printf("\nDirectory: ");
28*41079Swilliam 		gets(line);
29*41079Swilliam 		if ((i = open(line, 0)) < 0)
30*41079Swilliam 			printf("Cant open directory %s\n", line);
31*41079Swilliam 		else {
32*41079Swilliam 			ls(i);
33*41079Swilliam 			close(i);
34*41079Swilliam 		}
35*41079Swilliam 	}
36*41079Swilliam }
37*41079Swilliam 
ls(io)38*41079Swilliam ls(io)
39*41079Swilliam register io;
40*41079Swilliam {
41*41079Swilliam 	char buf[DIRBLKSIZ];
42*41079Swilliam 	register struct direct *dp;
43*41079Swilliam 	register off;
44*41079Swilliam 
45*41079Swilliam 	while (read(io, buf, DIRBLKSIZ) > 0) {
46*41079Swilliam 		for (off = 0 ; off < DIRBLKSIZ ; off += dp->d_reclen) {
47*41079Swilliam 			dp = (struct direct *)(off + (int) buf);
48*41079Swilliam 			if (dp->d_ino == 0)
49*41079Swilliam 				break;
50*41079Swilliam 			printf("%d\t", dp->d_ino);
51*41079Swilliam 			printf("%s\n", dp->d_name);
52*41079Swilliam 		}
53*41079Swilliam 	}
54*41079Swilliam }
55