summaryrefslogtreecommitdiff
path: root/userspace/ls.c
blob: 5b5034b696bfbb832b5aac9f1a9b198a8e26c864 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "../fs/fs.h"

void usage()
{
    puts("ls [inode_nr]");
}

int main(int argc, char **argv)
{
	fs_dirent *dirs=malloc(sizeof(fs_dirent)*25);

	if(argc!=2)
	{
	    usage();
	    return 0;
	}

	char *dir=argv[1];
	int  ls=readdir(dir,dirs,25);
	if(ls==-1)
	{
	    printf("%s: file or directory '%s' not found.\n",argv[0],dir);
	    return 0;
	}
    

	int i;
	for(i=0;i<ls;i++)
	{
	    printf("%i %s%c\n",dirs[i].inode, dirs[i].name, ((dirs[i].type==FS_FILE_TYPE_DIR)?'/':' '));
	}

	return 0;
}