updates to speed test
[lttv.git] / trunk / masters-pmf / java_speed_test / c / main.c
1 #include <sys/types.h>
2 #include <sys/stat.h>
3 #include <fcntl.h>
4 #include <unistd.h>
5
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <string.h>
9
10 int main(int argc, char **argv)
11 {
12 int result;
13 int fd;
14 int print = 0;
15
16 if(argc >= 2 && !strcmp(argv[1], "-p"))
17 print = 1;
18
19 result = fd = open("../trace.dat", O_RDONLY);
20 if(result == -1) {
21 perror("open");
22 return 1;
23 }
24
25 while(1) {
26 unsigned long timestamp;
27 unsigned short id;
28 unsigned char arglen;
29 char *args;
30
31 result = read(fd, &timestamp, 4);
32 if(result == 0)
33 break;
34 if(result < 4) {
35 perror("read");
36 return 1;
37 }
38
39 result = read(fd, &id, 2);
40 if(result < 2) {
41 perror("read");
42 return 1;
43 }
44
45 result = read(fd, &arglen, 1);
46 if(result < 1) {
47 perror("read");
48 return 1;
49 }
50
51 args = malloc(arglen);
52
53 result = read(fd, args, arglen);
54 if(result < arglen) {
55 perror("read");
56 return 1;
57 }
58
59 unsigned short arg1;
60 char *arg2;
61
62 arg1 = *(unsigned short *)args;
63 arg2 = args+2;
64
65 if(print)
66 printf("timestamp %lu id %hu args=(arg1=%hu arg2=\"%s\")\n", timestamp, id, arg1, arg2);
67
68 free(args);
69 }
70 close(fd);
71
72 return 0;
73 }
This page took 0.035589 seconds and 5 git commands to generate.