コード例 #1
0
ファイル: main.c プロジェクト: nresare/sparkey
static int info_file(const char *filename) {
  sparkey_logheader logheader;
  sparkey_hashheader hashheader;
  sparkey_returncode res = sparkey_load_logheader(&logheader, filename);
  if (res == SPARKEY_SUCCESS) {
    printf("Filename: %s\n", filename);
    print_logheader(&logheader);
    printf("\n");
    return 0;
  }

  if (res != SPARKEY_WRONG_LOG_MAGIC_NUMBER) {
    fprintf(stderr, "%s: %s\n", filename, sparkey_errstring(res));
    return 1;
  }

  res = sparkey_load_hashheader(&hashheader, filename);
  if (res == SPARKEY_SUCCESS) {
    printf("Filename: %s\n", filename);
    print_hashheader(&hashheader);
    printf("\n");
    return 0;
  }

  if (res != SPARKEY_WRONG_HASH_MAGIC_NUMBER) {
    fprintf(stderr, "%s: %s\n", filename, sparkey_errstring(res));
    return 1;
  }

  fprintf(stderr, "%s: Not a sparkey file.\n", filename);
  return 1;
}
コード例 #2
0
ファイル: main.c プロジェクト: nresare/sparkey
static int append(sparkey_logwriter *writer, char delimiter, FILE *input) {
  char *line = NULL;
  char *key = NULL;
  char *value = NULL;
  size_t size = 0;
  sparkey_returncode returncode;
  char delim[2];
  delim[0] = delimiter;
  delim[1] = '\0';

  for (size_t end = read_line(&line, &size, input); line[end] == '\n'; end = read_line(&line, &size, input)) {
    line[end] = '\0'; // trim '\n' off the end
    // Split on the first delimiter
    key = strtok(line, delim);
    value = strtok(NULL, delim);
    if (value != NULL) {
      // Write to log
      TRY(sparkey_logwriter_put(writer, strlen(key), (uint8_t*)key, strlen(value), (uint8_t*)value), put_fail);
    } else {
      goto split_fail;
    }
  }

  free(line);
  return 0;

split_fail:
  free(line);
  fprintf(stderr, "Cannot split input line, aborting early.\n");
  return 1;
put_fail:
  free(line);
  fprintf(stderr, "Cannot append line to log file, aborting early: %s\n", sparkey_errstring(returncode));
  return 1;
}
コード例 #3
0
ファイル: main.c プロジェクト: nresare/sparkey
static void assert(sparkey_returncode rc) {
  if (rc != SPARKEY_SUCCESS) {
    fprintf(stderr, "%s\n", sparkey_errstring(rc));
    // skip cleanup - program exit will clean up implicitly.
    exit(1);
  }
}
コード例 #4
0
ファイル: bench.c プロジェクト: haikusw/sparkey
static void _sparkey_assert(const char *file, int line, sparkey_returncode i) {
    if (i != SPARKEY_SUCCESS) {
        printf("%s:%d: assertion failed: %s\n", file, line, sparkey_errstring(i));
        exit(i);
    }
}