corsika-tape.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 
5 #include "corsika-tape.h"
6 
7 corsika_file *corsika_fopen(char *name, char *mode)
8 {
9  FILE *file;
10  corsika_file *cfile;
11 
12  if ((file = fopen(name, mode)) != NULL) {
13  cfile = (corsika_file *) malloc(sizeof(corsika_file));
14 
15  if (cfile == NULL) {
16  fprintf(stderr, "Cannot allocate memory for corsika file.\n");
17  exit(1);
18  }
19 
20  cfile->file = file;
22 
23  return cfile;
24  } else {
25  return NULL;
26  }
27 }
28 
30 {
31  int i;
32 
33  if (file->sub_index == SUB_BLOCKS_IN_BLOCK) {
34  i = fread(&file->bl, sizeof(block), 1, file->file);
35 
36  if (i != 1) file->sub_index = -1;
37  else file->sub_index = 0;
38  }
39 
40  if (file->sub_index == -1) return NULL;
41 
42  return file->bl.sb + file->sub_index++;
43 }
sub_block sb[21]
Definition: corsika-tape.h:288
int exit
Definition: dump1090.h:237
const string file
corsika_file * corsika_fopen(char *name, char *mode)
Definition: corsika-tape.c:7
#define SUB_BLOCKS_IN_BLOCK
Definition: corsika-tape.h:25
sub_block * corsika_get(corsika_file *file)
Definition: corsika-tape.c:29

, generated on Tue Sep 26 2023.