0

谁能告诉如何在 gwan 中使用 wake_up()?

// tell G-WAN when to run a script again (for the same request)
// type: WK_MS | WK_FD
#define WK_MS 1  // milliseconds
#define WK_FD 2  // file descriptor
void wake_up(char *argv[], int delay_or_fd, int type);

它是用来代替 sleep() 的吗?

4

1 回答 1

1

查看使用这些函数的示例 - 不过要小心,上次我测试它们时,它们没有工作(这可能已经修复或者可能是我的一个使用错误,但是如果你要使用它们,先尝试示例,看看它们是否有效)。

简而言之:

使用 WK_MS,它的行为接近于 sleep 函数,不同之处在于,您的函数在经过一段时间后再次被调用(而不是在您调用它的地方继续),并且在 wake_up 调用之后继续执行。所以它更像是“在 X 毫秒后再次执行我”。

使用 WK_FD,只要提供的文件描述符上有新数据,就应该再次调用您的脚本(例如,用于跟踪自建日志机制或理论上用于 websockets 等实时通信,但我从来没有让 CLIENT_SOCKET 使用它,所以要小心事先检查你传递的任何东西,如果它真的是一个文件描述符)

于 2013-06-03T15:22:09.430 回答