static int ltransexpr(FILE *outfile, const LSYS *lsys, const TRANSSYS *transsys, const char *symbol_name, unsigned int rndseed, unsigned long num_timesteps, unsigned long output_period) { LSYS_STRING *lstr, *dstr; unsigned long t; int symbol_index = -2; /* initialiser pacifies -Wall */ int return_value; if (symbol_name) { symbol_index = find_symbol_index_by_name(lsys, symbol_name); if (symbol_index == NO_INDEX) { fprintf(stderr, "no symbol \"%s\" in lsys \"%s\"\n", symbol_name, lsys->name); return (-1); } } else { symbol_index = NO_INDEX; } if (transsys) { fprint_header(outfile, lsys, transsys); } ulong_srandom(rndseed); lstr = axiom_string(lsys); for (t = 0; t < num_timesteps; t++) { return_value = lsys_string_expression(lstr); if (return_value != 0) { free_lsys_string(lstr); return (-1); } return_value = lsys_string_diffusion(lstr); if (return_value != 0) { free_lsys_string(lstr); return (-1); } dstr = derived_string(lstr); if ((t % output_period) == 0) { fprint_lstr_table(outfile, lstr, transsys, symbol_index, t); } free_lsys_string(lstr); lstr = dstr; } free_lsys_string(lstr); return (0); }
void fprint_data(FILE *f, char *pkt) { int len = get_packet_entries(pkt); fprint_header(f, pkt); pkt += HEADER_DIM; fprint_bloom(f, pkt); pkt += MADN_BLOOM_DIM; fprint_dataid(f, pkt); pkt += DATAID_DIM; fprint_field_8(f, pkt, len); }
void fprint_leech(FILE *f, char *pkt) { int i; int len = get_packet_entries(pkt); fprint_header(f, pkt); pkt += HEADER_DIM; fprint_bloom(f, pkt); pkt += MADN_BLOOM_DIM; for (i = 0; i < len; i++) { fprint_req(f, pkt+(i * sizeof(MADN_DATA_REQUEST))); } }
int main (int argc, char **argv) { char *in_prefix = NULL; char *in_dir = NULL; char *out_dir = NULL; /*----------------------------------------------------------------- * Check the command line input; get file name or directory name *-----------------------------------------------------------------*/ { ht_args_st* args = parse_command_line ( argc, argv); if ( !args ) { fprintf (stderr, " ERROR in HydroCommandLine: HydroTrend Aborted \n\n"); exit (EXIT_FAILURE); } in_prefix = args->in_file; in_dir = args->in_dir; out_dir = args->out_dir; free( args ); } fprint_header ( stdout ); fprint_current_time ( stdout, "Start" ); { ht_state *s = NULL; s = ht_initialize (in_dir, in_prefix, out_dir ); BMI_HYDROTREND_Update_until (s, 10.5); BMI_HYDROTREND_Finalize (s); } fprint_current_time( stdout, "Stop" ); fprint_footer ( stdout ); free( in_prefix ); free( in_dir ); if (out_dir) free (out_dir); return EXIT_SUCCESS; }
int main(int argc, char* argv[]) { struct stats st, st_prev; struct ext_stats ext_st; unsigned long long interval; char *logfile = LOG_FILE; int speed = -1, duplex = -1; /* Usage: ./sysmon [real-time logging switch] [log filename] [print flag] (netif speed) (netif duplex) netif duplex takes C_DUPLEX_HALF=1 or C_DUPLEX_FULL=2 */ if (2 <= argc) realtime_logging = (strcmp("1", argv[1]) == 0); if (3 <= argc) logfile = argv[2]; if (4 <= argc && (strncmp("0x", argv[3], 2) == 0)) print_flag = (int)strtol(argv[3], NULL, 0); /* Expecting 0x... */ if (5 <= argc) speed = atoi(argv[4]); if (6 <= argc) duplex = atoi(argv[5]); printf ("realtime logging : %s\n", realtime_logging ? "enabled" : "disabled"); printf ("log file : %s\n", logfile); printf ("print flag : 0x%08x\n", print_flag); printf ("speed : %d\n", speed); printf ("duplex : %d\n", duplex); #ifndef DEBUG if ((fp = fopen(logfile, "w+")) == NULL) { fprintf(stderr, "opening logfile failed\n"); exit(EXIT_FAILURE); } #else fp = stdout; #endif /* Initialization */ signal(SIGINT, signal_callback_handler); /* Set up a signal handler */ read_stats(&base_stats); clock_gettime(CLOCK_MONOTONIC, &base_time); /* Obtain speed/duplex info for eth0 */ read_net_dev(&st.net, 1); read_if_info(&st.net, 1); /* VMs on Google Clouds do not let you read files under /sys/class/net/eth0/ See also: http://unix.stackexchange.com/questions/77750/checking-the-speed-of-active-network-connections */ base_stats.net.speed = (0 < speed) ? speed : st.net.speed; base_stats.net.duplex = (0 < duplex) ? duplex : st.net.duplex; st = st_prev = base_stats; /* Initialize variables for min/max/mean/var computation */ num_samples = 1; set_max_ext_stats(&min); memset((void *)&max, 0x00, sizeof(struct ext_stats)); memset((void *)&mean, 0x00, sizeof(struct ext_stats)); memset((void *)&var, 0x00, sizeof(struct ext_stats)); /* For real-time logging */ if (realtime_logging) fprint_header(fp, print_flag); /* Get HZ */ get_HZ(); while (1) { /* Anyways, we record stats for average computation */ usleep(INTERVAL_SEC * SEC_TO_MSEC); read_stats(&st); interval = get_interval(st_prev.uptime, st.uptime); /* Compute extended stats from raw stats */ compute_ext_stats(interval, &st, &st_prev, &ext_st); update_ext_stats(num_samples, &ext_st, &min, &max, &mean, &var); if (realtime_logging) fprint_stats(fp, print_flag, &st, &ext_st); /* Update stats (min/max/mean/var) for ext_stats */ st_prev = st; num_samples++; } /* Program never gets here */ printf("Waiting for the SIGINT signal\n"); pause(); return EXIT_SUCCESS; }
void fprint_beacon(FILE *f, char *pkt) { fprint_header(f, pkt); pkt += HEADER_DIM; fprint_bloom(f, pkt); }