gpt4 book ai didi

linux - 系统调用sync()的引用不明确

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:14 26 4
gpt4 key购买 nike

我试图在我的c++方法中调用reboot()之前写入缓存。编译时,我收到引用“sync”不明确的错误。我正在使用的库是在“include”中定义的,我们的第三方 include cil 库引入了另一个sync() 函数。如何获取 unistd.h 版本?

最佳答案

在 C++ 中,您可以使用 ::sync();如果你想引用全局sync(2) (有关 C++ 中的全局变量,请参阅 this);你需要#include <unistd.h>适本地。

在 C++ 中,您不能将语句置于全局范围内;语句只能出现在函数定义内部。

我还建议避免调用reboot(2)就在一个sync();之后因为我相信 sync可能不完整。也许

 void restart_the_system(void) { // a C++ function
::sync();
::sleep (1);
::sync();
::sleep (1);
::sync();
::reboot (LINUX_REBOOT_CMD_POWER_OFF);
}

可能会好一点。但现在,您的 Linux 可能正在使用 systemd你应该用它来重新启动。

关于linux - 系统调用sync()的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188024/

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