【问题标题】:Sleep() function in C not working on hp non-stopC中的Sleep()函数不能在hp不间断地工作
【发布时间】:2026-02-05 20:35:01
【问题描述】:

我在 hp-nonstop(tandem) 上尝试 C 语言, 作为一部分,我的任务是等待某个时间。

我尝试使用

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main()
{
   int i;
   for(i=0;i<10;i++)
   {
     printf("Something");
     sleep(5);
     printf("Something");
     fflush(stdout);
    }
 }

编译没有问题,

在运行时它给出 ABENDED: 每次不同的编号。

【问题讨论】:

  • 您是否获得了特定的 ABEND 代码/额外信息?
  • sleep() 总是成功,所以没有失败返回。 当遇到阻止此功能成功完成的任何故障时,将生成异常结束。
  • 我认为您需要提供更多细节,否则任何人都无法说出为什么会发生“ABnormal END”。
  • 我已经添加了代码,我正在尝试并且异常结束。你能告诉我你还需要什么信息吗? @alinsoar

标签: c sleep hp-nonstop tandem


【解决方案1】:

从监护环境调用sleep() 的结果未定义。这可能会导致您提到的 ABEND。如果您想在监护人 hp-nonstop 环境中等待一段时间,您应该致电DELAY()。它需要厘秒作为参数。所以如果你想增加 5 秒的延迟,你应该把它称为DELAY (500)。您还需要包含标题#include&lt;cextdecs(DELAY)&gt;

【讨论】:

  • 非常感谢@pras 它正在工作
  • 更正了如果你想要延迟 5 秒,函数应该被称为 DELAY(500) 而不是 DELAY(5)