gpt4 book ai didi

c - 通知 'main loop'

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:47 25 4
gpt4 key购买 nike

我通过在inotify 文件描述符,然后使用 fcntl(inotifyfd, F_SETOWN, getpid())再加上一个信号(sighandler,SIGIO)调用,全部来自一个进程,为了设置一个 inotify 文件描述符事件处理程序。

想法是让 inotify 的文件描述符生成 SIGIO 信号(通过设置 O_ASYNcflags)并让 signal(..) 注册的处理程序处理 SIGIO 信号因为它们被发出从而避免轮询 inotify 文件描述符。

在初始设置和信号处理程序设置之后,进程无关并且通常会退出。

我需要相同的进程在设置后保持空闲状态,因为它充当等待 SIGIO 信号的守护进程。这是我寻求帮助的地方。

我怎样才能使进程空闲以占用最少的 cpu 资源?

最佳答案

如果您的进程在看到 inotify 事件之前要保持空闲状态,那么您就把事情严重地复杂化了。

只需在 inotify 文件描述符上执行正常的阻塞 read()。当有一个 inotify 事件时,你的进程将被唤醒。如果您想阻塞超时,以便您可以定期检查其他内容,请使用 select()

一般来说,我发现如果答案是“信号”,那么您可能问错了问题:)

关于c - 通知 'main loop',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280893/

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