gpt4 book ai didi

c - 是否可以通过 select() 在无限循环中使用 nanosleep?

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:56 24 4
gpt4 key购买 nike

我有一个 C 程序,它使用 for(;;) 从/向套接字执行接收/发送操作。循环和一个 select()监视文件描述符。我还需要这个程序每 80 毫秒向一个数据包发送一个数据包,我该如何实现呢?也许我可以使用 fork()并且子进程只需在 select() 监视的文件描述符之一中写入一个 ack每 80 毫秒。有没有更好的解决方案?

最佳答案

调用 select() 时可以使用 timeout 参数来限制选择等待时间。

 struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* microseconds */
};

int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);

将超时限制为 80 毫秒并发送所需的数据包相当容易。

关于c - 是否可以通过 select() 在无限循环中使用 nanosleep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551054/

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