Задержка чтения файла? - PullRequest
       8

Задержка чтения файла?

0 голосов
/ 22 ноября 2018

Строки входного файла ниже также отформатированы как «интервал задержки swi», где интервал - это целое число в миллисекундах.Каждый раз, когда swi встречает такую ​​строку, коммутатор задерживает чтение (и обработку) оставшейся части входного файла в течение указанного промежутка времени.В течение этого периода коммутатор должен продолжать отслеживать и обрабатывать команды клавиатуры и пакеты, полученные от подключенных устройств.Эта функция имитирует задержки при получении пакетов от хостов, обслуживаемых коммутатором.

Я думал об использовании wait (), но вскоре понял, что это не то, что вы делаете с задержкой.Как я могу сделать это?код ниже, как я читаю из файла трафика прямо сейчас.Я использую poll () для мониторинга других файловых дескрипторов.

       /*Read the traffic file */
            while((ch = fgets(line, sizeof(line), fp) != NULL)){
                    if(line[0] == '#' || line[0] == ' ' || line[0] == '\n' || (!strstr(line, switchI))){
                            continue;
                    }
                    if(line[4] == 'd'){

                            strcpy(newline, line);
                            tempp = strtok(newline, " ");
                            tempp = strtok(NULL, " ");
                            strcpy(delay, tempp);
                            tempp = strtok(NULL, " ");
                            interval = atoi(tempp);
                            //printf("%s\n", line);
                            //printf("%s, %d\n", delay, interval);

 sw1 delay 2000
 sw1  100  101
 sw1  100  102
 sw1  100  700
 sw1 delay 2000
#
 sw2 delay 2000
 sw2  500  501
 sw2  500  502
 sw2  500  700
 sw2 delay 2000
 #  
  sw3 delay 2000
  sw3  200  201
  sw3  200  202
  sw3  200  700
...