程序接收信号SIGIO

发布于 2024-12-04 15:27:31 字数 153 浏览 3 评论 0原文

我在 NGINX 的 error.log 中看到以下错误:

[通知]12451#0:收到信号 29 (SIGIO)

我想知道程序在什么情况下收到 SIGIO

I see following error in my NGINX's error.log:

[notice] 12451#0: signal 29 (SIGIO) received

I want to know in which case does a program receive a SIGIO?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一个人练习一个人 2024-12-11 15:27:31

对于异步信号,代码应该执行以下步骤。

首先,您应该允许您的进程接收 SIGIO,然后
您的套接字或管道应置于异步模式。

在您的代码中搜索这些行。

// Allow the process to receive SIGIO
fcntl(fd, F_SETOWN, getpid());

// Make socket/pipe non-blocking
fcntl(fd, F_SETFL, FASYNC);

/或

// Make socket/pipe non-blocking
fcntl(fd, F_SETFL, O_NONBLOCK);

要搜索的关键字有:F_SETOWNFASYNCO_NONBLOCK

For asynchronous signalling, the code should do these steps.

First, you should allow your process to receive SIGIO, and then
your socket or pipe should be put to async mode.

Search for these lines in your code.

// Allow the process to receive SIGIO
fcntl(fd, F_SETOWN, getpid());

and

// Make socket/pipe non-blocking
fcntl(fd, F_SETFL, FASYNC);

or

// Make socket/pipe non-blocking
fcntl(fd, F_SETFL, O_NONBLOCK);

Keywords to search for are: F_SETOWN, FASYNC and O_NONBLOCK.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文