+#define _LARGEFILE_SOURCE
+#define _FILE_OFFSET_BITS 64
+
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char **argv)
{
int result;
int main(int argc, char **argv)
{
int result;
int print = 0;
if(argc >= 2 && !strcmp(argv[1], "-p"))
print = 1;
int print = 0;
if(argc >= 2 && !strcmp(argv[1], "-p"))
print = 1;
- result = fd = open("../trace.dat", O_RDONLY);
- if(result == -1) {
- perror("open");
+ fp = fopen("../trace.dat", "r");
+ if(fp == NULL) {
+ perror("fopen");
unsigned char arglen;
char *args;
unsigned char arglen;
char *args;
- result = read(fd, ×tamp, 4);
- if(result == 0)
+ fscanf(fp, "%4c", ×tamp);
+ if(feof(fp))
- if(result < 4) {
- perror("read");
- return 1;
- }
-
- result = read(fd, &id, 2);
- if(result < 2) {
- perror("read");
- return 1;
- }
-
- result = read(fd, &arglen, 1);
- if(result < 1) {
- perror("read");
- return 1;
- }
+
+ fscanf(fp, "%2c", &id);
+
+ fscanf(fp, "%1c", &arglen);
- result = read(fd, args, arglen);
- if(result < arglen) {
- perror("read");
- return 1;
- }
+ // manually specify length of args
+ fscanf(fp, "%15c", args);
unsigned short arg1;
char *arg2;
unsigned short arg1;
char *arg2;
printf("timestamp %lu id %hu args=(arg1=%hu arg2=\"%s\")\n", timestamp, id, arg1, arg2);
free(args);
printf("timestamp %lu id %hu args=(arg1=%hu arg2=\"%s\")\n", timestamp, id, arg1, arg2);
free(args);
try {
FileInputStream file_input = new FileInputStream ("../trace.dat");
try {
FileInputStream file_input = new FileInputStream ("../trace.dat");
- DataInputStream data_input = new DataInputStream (file_input);
+ BufferedInputStream buffered_input = new BufferedInputStream(file_input);
+ DataInputStream data_input = new DataInputStream (buffered_input);