gpt4 book ai didi

c - 为什么 gcc 中没有延迟

转载 作者:行者123 更新时间:2023-11-30 21:15:39 25 4
gpt4 key购买 nike

为什么 gcc 中没有延迟?根据我的理解,延迟函数停止程序,而 sleep 函数使程序休眠并执行上下文切换。如果我想停止我的程序,gcc 中有什么可用选项?

最佳答案

因为据我所知,delay 并不在 C99 或 C2011 标准中。

C 标准在 API 方面相当差(它主要了解 FILE*、一些内存操作(如 malloc)、一些字符串操作和 setjmp ...;它不知道目录或延迟)。

上下文切换在纯标准 C 中没有意义(它只在 Unix 等多任务操作系统上有意义)。

(非标准 C)编程环境应提供延迟函数。在 Linux 上,它是 Posix 的超集,确实有 sleep和许多其他功能。您可以使用 sched_yield(2)系统调用“强制”上下文切换。

你应该读一些像Advanced Linux Programming这样的书。也许要停止系统,您需要使用 sync(2)reboot(2)系统调用,但这可能是一个坏主意;你可能想运行,例如使用 system(3)shutdownhalt 命令。

如果您只想停止特定程序(并让系统的其余部分照常运行其他进程),只需调用 exit(3)这是 C 标准中的内容。

PS。如果您编写内核设备驱动程序,您应该在问题中明确说明这一点,并且您确实应该了解更多有关 Linux 的知识。在某些驱动程序中,当遇到严重麻烦时,您可能会调用一些 panic 函数。

关于c - 为什么 gcc 中没有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com