gpt4 book ai didi

c++ - 不再在 cstdlib 中休眠?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:18 25 4
gpt4 key购买 nike

我有一个正常情况下编译良好的应用程序。它使用两个“非标准”函数(如果我没记错的话,都在 cstdlib 中):sleep() 和 daemon()。更新我的系统后,我发现我的程序将不再编译(它仍然可以在我的旧系统上编译)。 GCC 给我这条信息:

error: 'daemon' was not declared in this scope
error: 'sleep' was not declared in this scope

我记得过去有一次我在使用 sleep() 时遇到过同样的问题,包括 cstdlib 解决了这个问题。我找不到 cstdlib 的更改日志,也不知道该函数移到了哪里(如果没有删除)。我也假设同样的事情发生在 daemon() 上。我在谷歌中找不到与此相关的任何内容。

有谁知道这些东西去了哪里,或者更好的是知道我将来可以在哪里找到以防我再次遇到这个问题?

我知道 daemon() 是一种懒惰的做事方式,我可以自己编写一个适当的方法来守护这个程序(使用 fork 等),但使用起来非常方便。

最佳答案

都不是sleep也不daemon是 C 标准库 (cstdlib) 的一部分。 sleepunistd.h 中定义的 POSIX.1-2001 函数和 daemon是一个非 POSIX 函数,在 unistd.h 中也可用在 Linux 上。

作为非标准函数,您可能必须定义 _GNU_SOURCE之前#include <unistd.h>得到 daemon 的定义.

关于c++ - 不再在 cstdlib 中休眠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11918260/

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