Пример #1
0
void
begin (int argc, const char * argv[])
{
  size_t output;
  size_t pos;

  output = Outfile ("-");

  Add_field (output, Sym ("uint4"), Sym ("bp0"));
  Add_field (output, Sym ("uint4"), Sym ("bp1"));
  File_fix (output, 1, 0);


  pos = 0;
  while (1)
    {
      const int char_in = getchar ();

      if (char_in == EOF)
        {
          if (ferror (stdin))
            Fatal ("input error");
          else
            {
              if (pos % 2)
                {
                  Poke (output, 0, 1, uInt4 (bp_letter_to_int4 (0)));
                  Advance (output, 1);
                }
              break;
            }
        }

      Poke (output, 0, (pos % 2),
            uInt4 (bp_letter_to_int4 (char_in)));

      ++pos;

      if (!(pos % 2))
        Advance (output, 1);
    }

  Close (output);
}
Пример #2
0
void
print_fields(int fd, unsigned char *details)
    /* print a line describing the field types used in print_line() */
{
    char fields[TERM_LEN];
    char field_user[] = " USER  ";
    char field_id[] = "ID   ";
    char field_rq[] = " R&Q ";
    char field_options[] = " OPTIONS  ";
    char field_schedule[] = " SCHEDULE        ";
    char field_until[] = " LAVG 1,5,15 UNTIL       STRICT";
    char field_pid[] = " PID    ";
    char field_index[] = " INDEX";
    char field_cmd[] = " CMD";
    char field_endline[] = "\n";
    int len = 0;

    fields[0] = '\0';

    Add_field(field_id);
    Test_add_field(FIELD_USER, field_user);
    Test_add_field(FIELD_PID, field_pid);
    Test_add_field(FIELD_INDEX, field_index);
    Test_add_field(FIELD_RQ, field_rq);
    Test_add_field(FIELD_OPTIONS, field_options);
    Test_add_field(FIELD_LAVG, field_until);
    Test_add_field(FIELD_SCHEDULE, field_schedule);
    Add_field(field_cmd);
    Add_field(field_endline);

    fields[TERM_LEN-1] = '\0';

    if ( send(fd, fields, (len < sizeof(fields)) ? len : sizeof(fields), 0) < 0 )
	error_e("error in send()");

}