1

有谁知道如何在 cobol 中创建一个计时器?有可能吗?

4

4 回答 4

2

对于 OpenCOBOL,有 C$SLEEP(以秒为单位)和 CBL_OC_NANOSLEEP(以十亿分之一秒为单位 - 这比大多数机器可以处理的分辨率更高 - 请参阅 librt clock_res() 以访问特定部分的精度)的库存库 CALL 函数硬件和操作系统)。

克隆出 OpenCOBOL 源的副本并在文件libcob/common.c中查找cob_acuw_sleepCBL_OC_NANOSLEEP C 函数,看看它是如何为 OpenCOBOL 完成的;它具有用于处理 Windows 和 POSIXey 系统的这些计时器的条件代码。

于 2012-12-10T21:14:57.627 回答
2

要在 Cobol 中对过程进行计时,您可以计算两个时间点之间的差异。这是一些示例代码,用于测量时间点以帮助您入门。

   01  TEMP-TIME-1.
       05  T1-HOURS                 PIC 99.
       05  T1-MINUTES               PIC 99.
       05  T1-SECONDS               PIC 99.
       05  T1-HUNDREDTHS-OF-SECS    PIC 99.

  Use similar data definitions for TEMP-TIME-2
                                   START-TIME
                                   END-TIME

   ACCEPT TEMP-TIME-1 FROM TIME

  If using hundredth of seconds, use following loop
  to start timing at start of a hundredth of a second

   PERFORM WITH TEST AFTER UNTIL TEMP-TIME-2 <> TEMP-TIME-1
       ACCEPT TEMP-TIME-2 FROM TIME
   END-PERFORM
   MOVE TEMP-TIME-2 TO START-TIME

使用类似代码设置 END-TIME

于 2012-08-29T23:02:55.167 回答
2

也许这个谷歌页面的问题可能会对您有所帮助:Cobol 中是否有 TIMER 功能

在 PC 上搜索 DosSleep,在大型机上搜索 ILBOWAT0。

希望有帮助。

于 2012-08-29T17:49:42.113 回答
1

ILBOWAT0 已过时 20 年。Language Environment 在 IBM 大型机上提供了一个解决方案,详见此处

于 2012-08-29T22:07:14.540 回答