小编Ale*_*lex的帖子

双叉() - 为什么?

我在catwm(一个简约的窗口管理器)的源代码中发现了以下函数:

void spawn(const Arg arg) {
    if(fork() == 0) {
        if(fork() == 0) {
            if(dis)
                close(ConnectionNumber(dis));

            setsid();
            execvp((char*)arg.com[0],(char**)arg.com);
        }
        exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

在 github 上查看

我不明白为什么不简单地

void spawn(const Arg arg) {
    if(fork() == 0) {
        if(dis)
            close(ConnectionNumber(dis));

        setsid();
        execvp((char*)arg.com[0],(char**)arg.com);
    }
}
Run Code Online (Sandbox Code Playgroud)

?在这里使用 double 有什么好处吗fork()

c fork daemon

17
推荐指数
1
解决办法
4573
查看次数

笔记本电脑盖关闭时等待然后休眠

我对“暂停然后休眠”作为盖子关闭操作有疑问。

因此,我希望系统关闭并锁定屏幕,并在盖子关闭后等待 10 分钟(但不暂停),而不是暂停,然后(如果盖子保持关闭状态)进入休眠状态。

可以使用 systemd 来做到这一点吗?

hibernate systemd

5
推荐指数
0
解决办法
135
查看次数

标签 统计

c ×1

daemon ×1

fork ×1

hibernate ×1

systemd ×1