示例#1
0
int extract(struct Options * op)
{
  FILE * database, * fp;
  int seq;
  char c;

  database = fopen(op->database,"r");
  if(database == NULL)
  {
    printf("Database cannot open:%s\r\n",op->database);
    return -3;
  }
  
  fp = fopen(op->filename,"w");
  if(fp == NULL)
  {
    printf("Can create file:%s\r\n",op->filename);
    return -5;
  }

  seq = 0;
  if(read_util(database, '>', 0, NULL) != 0) return -4;
  while(1) 
  {
		if(read_util(database, '\n', 0, NULL) != 0) break;
		seq++;
		if(read_util(database, '>', 1, fp) != 0) break;
  }

  fclose(fp);
  fclose(database);
  fp = database = NULL;
  return seq;
}
示例#2
0
/**
 * Send a register request to cakedb server
 */
int16_t register_stream(struct sockaddr_in saddr, const char *stream_name)
{
  t_head header;
  int s;
  int32_t i;
  int16_t sid;

  printf("registering stream %s\n", stream_name);

  s = create_network_link(saddr);

  /* Send an register stream request */
  header.cmd = htons(5);
  i = strlen(stream_name);
  header.length = htonl(i);

  /* Send header to cakedb */
  write_util(s, &header, sizeof(header.cmd) + sizeof(header.length));

  /* Send stream name to cakedb */
  write_util(s, stream_name, i);

  /* Read stream id returned by cakedb */
  read_util(s, &sid, sizeof(sid));

  /* Convert sid to host endianess */
  sid = ntohs(sid);
  printf("received stream id: %d\n", (int) sid);

  close(s);
  return (sid);
}