我有一个通常正常编译的应用程序.它使用两个"非标准"函数(如果我没有记错的话,都在cstdlib中):sleep()和daemon().在更新我的系统后,我发现我的程序将不再编译(它仍然在我的旧系统上编译).GCC给了我这样的信息:
error: 'daemon' was not declared in this scope
error: 'sleep' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
我记得曾经有过一次与sleep()有同样的问题,并且包括cstdlib解决了这个问题.我找不到cstdlib的更改日志,也不知道函数的移动位置(如果没有删除).我也假设daemon()发生了同样的事情.我在谷歌找不到与此相关的任何内容.
有谁知道这些去了哪里,或者更好地知道我将来可以找到的地方,以防我再次遇到这个问题?
我知道daemon()是一种懒惰的做事方式,并且可以自己编写一个正确的方法来守护这个程序(使用fork等),但使用它非常方便.
既不是sleep也不daemon是C标准库(cstdlib)的一部分.sleep是一个定义的POSIX.1-2001函数unistd.h,daemon是一个非POSIX函数,也可以在unistd.hlinux上找到.
作为非标准函数,您可能必须先定义_GNU_SOURCE才能#include <unistd.h>获得定义daemon.
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |