09112720180b55aa7bd3c80172c87ac8f52beb7d
[akaros.git] / tests / file_test.c
1 #include <rstdio.h> 
2 #include <sys/types.h>
3 #include <sys/stat.h>
4 #include <fcntl.h>
5 #include <arch/arch.h>
6 #include <unistd.h>
7 #include <errno.h>
8
9 int main() 
10
11         FILE *file; 
12         file = fopen("/dir1/f1.txt","w+b");
13         if (file == NULL)
14                 printf ("Failed to open file \n");
15         fprintf(file,"%s","hello, world\n"); 
16         fclose(file); 
17
18         int fd = open("../../..//////dir1/test.txt", O_RDWR | O_CREAT );
19         char rbuf[256] = {0}, wbuf[256] = {0};
20         int retval;
21         retval = read(fd, rbuf, 16);
22         printf("Tried to read, got %d bytes of buf: %s\n", retval, rbuf);
23         strcpy(wbuf, "paul <3's the new 61c");
24         retval = write(fd, wbuf, 22);
25         printf("Tried to write, wrote %d bytes\n", retval);
26         printf("Trying to seek to 0\n");
27         lseek(fd, 0, SEEK_SET);
28         retval = read(fd, rbuf, 64);
29         printf("Tried to read again, got %d bytes of buf: %s\n", retval, rbuf);
30
31         retval = access("/bin/laden", X_OK);
32         if (errno != ENOENT)
33                 printf("WARNING! Access error for Osama!\n");
34         retval = access("////../../////dir1/f1.txt", R_OK);
35         if (retval < 0)
36                 printf("WARNING! Access error for f1.txt!\n");
37
38         struct stat st = {0};
39         //retval = stat("/bin/mhello", &st);
40         retval = fstat(fd, &st);
41         printf("Tried to stat, was told %d\n", retval);
42         printf("STAT RESULTS\n---------------------\n");
43         printf("dev       : %d\n", st.st_dev);
44         printf("ino       : %d\n", st.st_ino);
45         printf("mode      : %d\n", st.st_mode);
46         printf("nlink     : %d\n", st.st_nlink);
47         printf("uid       : %d\n", st.st_uid);
48         printf("gid       : %d\n", st.st_gid);
49         printf("rdev      : %d\n", st.st_rdev);
50         printf("size      : %d\n", st.st_size);
51         printf("blksize   : %d\n", st.st_blksize);
52         printf("blocks    : %d\n", st.st_blocks);
53         printf("atime     : %d\n", st.st_atime);
54         printf("mtime     : %d\n", st.st_mtime);
55         printf("ctime     : %d\n", st.st_ctime);
56
57         retval = symlink("/dir1/random.txt", "/dir2/sym-test");
58         if (retval < 0)
59                 printf("WARNING! Symlink creation failed!\n");
60         retval = readlink("/dir2/sym-test", rbuf, 256);
61         if (retval < 0)
62                 printf("WARNING! Readlink failed!\n");
63         else
64                 printf("Readlink read %d bytes\n", retval);
65
66         breakpoint();
67 }