1 
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #include <time.h>
6 
7 // Castor Only
8 #include <syscall.h>
9 #include <sys/syscall.h>
10 #include <sys/dirent.h>
11 
12 int
main(int argc,const char * argv[])13 main(int argc, const char *argv[])
14 {
15     int i;
16     int status, fd;
17     struct stat sb;
18     char buf[256];
19 
20     if (argc < 2) {
21 	fputs("Requires an argument\n", stdout);
22 	return 1;
23     }
24 
25     if (argc > 2) {
26 	fputs("Too many arguments, expected one\n", stdout);
27 	return 1;
28     }
29 
30     status = OSStat(argv[1], &sb);
31     if (status != 0) {
32 	fputs("Cannot stat file\n", stdout);
33 	return 0;
34     }
35     fd = OSOpen(argv[1], 0);
36     for (i = 0; i < sb.st_size; i += 256) {
37 	int len = (sb.st_size - i > 256) ? 256 : (sb.st_size - i);
38 
39 	OSRead(fd, &buf, i, len);
40 	OSWrite(1, &buf, 0, len);
41     }
42 
43     return 0;
44 }
45 
46