首页 > 解决方案 > 延迟读取文件?

问题描述

下面的输入文件行也被格式化为“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

标签: clinuxpolling

解决方案


推荐阅读