Get rid of unnecessary barrier. Improve comment.
[pintos-anon] / grading / vm / child-sort.c
1 #include <stdio.h>
2 #ifdef PINTOS
3 #include <syscall.h>
4 #else
5 #include "posix-compat.h"
6 #endif
7
8 unsigned char buf[65536];
9 size_t histogram[256];
10
11 int
12 main (int argc __attribute__ ((unused)), char *argv[]) 
13 {
14   int fd;
15   unsigned char *p;
16   size_t size;
17   size_t i;
18
19   fd = open (argv[1]);
20   if (fd < 0) 
21     {
22       printf ("(child-sort) open() failed\n");
23       return 1;
24     }
25
26   size = read (fd, buf, sizeof buf);
27   for (i = 0; i < size; i++)
28     histogram[buf[i]]++;
29   p = buf;
30   for (i = 0; i < sizeof histogram / sizeof *histogram; i++) 
31     {
32       size_t j = histogram[i];
33       while (j-- > 0)
34         *p++ = i;
35     }
36   seek (fd, 0);
37   write (fd, buf, size);
38   close (fd);
39   
40   return 123;
41 }