C++ select() 不等待超时时间

2024-01-03

我正在尝试使用 select 函数来接受输入,但如果用户没有输入任何内容,则每 2 秒执行一次其他操作。下面的代码在第一次到达 select() 时等待两秒,但是一旦打印出第一个“超时”消息,它就会快速继续打印“超时”而不等待 2 秒,基本上进入无限循环。有人知道问题是什么吗?谢谢你的帮助。

#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
using namespace std;

const int STDIN = 0;
int main(int argc, int *argv[])
{
struct timeval tv;
fd_set readfds, master;
tv.tv_sec = 2;
tv.tv_usec = 0;
FD_ZERO(&readfds);
FD_ZERO(&master);
FD_SET(STDIN, &readfds);
FD_SET(STDIN, &master);
string buffer = "";
while(buffer != "quit"){
    readfds = master;
    if(select(STDIN+1, &readfds, NULL, NULL, &tv) == -1) perror("select");
    if (FD_ISSET(STDIN, &readfds)){
        getline(cin, buffer);
        cout << "You entered: " << buffer << endl;
    }else
        cout << "Timed out.\n" << endl;
}
return 0;
}

每个人: select() 可能会更新超时参数以指示还剩多少时间。 pselect() 不会更改此参数。

这意味着如果 2 秒后超时,它可能会将您的 tv_sec 设置为 0。

如果 timeval 的两个字段都为 0,则立即返回。

尝试在 while() 内的每个循环中设置超时,以确保它不会被覆盖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ select() 不等待超时时间 的相关文章

  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • 如何使用 SOAP 且不使用 WSE 在 .NET 中签署 Amazon Web 服务请求

    亚马逊产品广告 API 以前称为 Amazon Associates Web Service 或 Amazon AWS 实施了一项新规则 即自 2009 年 8 月 15 日起 向其发送的所有 Web 服务请求都必须经过签名 他们在其网站上
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 增强精神、递归和堆栈溢出

    为什么下面的代码在运行时崩溃 它会给出堆栈溢出错误 include
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 如何使用 NPOI 按地址(A1、A2)获取 Excel 单元格值

    我有一个 Excel 单元格地址 例如 A1 A2 如何使用 C 中的 NPOI 框架以编程方式访问此单元格 我找到的一些 Java POI 示例代码 CellReference cr new CellReference A1 row my
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 在 C#.NET 中安全删除文件

    在我正在做的一个项目中 我想为用户提供 安全 删除文件的选项 例如 用随机位或 0 覆盖它 在 C NET 中是否有一种简单的方法可以做到这一点 效果如何 你可以调用系统内部删除 http technet microsoft com en
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您

随机推荐

  • 使用实体框架代码优先的 EF6 存储函数,我可以返回自定义类型吗?

    我有一个实体类 public class SomeClass public int Id get set public int Value get set public string Name get set 使用实体框架代码优先的 EF6
  • Twython OAuth1 问题,使用示例代码的 401 错误

    我正在尝试使用最新版本的 Twython 和 Python 2 7 3 设置流 我正在尝试重现中的示例流媒体文档 https twython readthedocs org en latest usage streaming api htm
  • 使用 extrafont 将字体导入 R 时如何解决“无字体名称”问题?

    我的 Windows 桌面上有一个文件夹 C Users me Desktop Fonts 其中包含我想使用导入到 R 中的字体extrafont 当我尝试使用导入字体时 library extrafont font import path
  • 将模型公式传递给另一个函数时出现对象未找到错误

    我在 R 上遇到了一个奇怪的问题 我似乎无法解决 我尝试编写一个函数 对 R 中的逐步过程选择的模型执行 K 折交叉验证 我知道逐步过程的问题 纯粹是为了比较目的 现在的问题是 如果我定义函数参数 linmod k 方向 并运行函数的内容
  • iOS - 逐帧读取视频文件,进行图像处理,然后另存为新视频文件

    我尝试从 iPhone 相册中逐帧读取视频 图像处理后 我会将它们另存为新视频 我正在运行我的代码 没有任何错误 但相册中没有新视频 这是我的代码 Video writer init BOOL setupAssetWriterForURL
  • 为什么C#中的空结构会消耗内存

    我一直理解结构 值类型 包含结构字段中定义的字节数 但是 我做了一些测试 空结构似乎有一个例外 public class EmptyStructTest static void Main string args FindMemoryLoad
  • 用户向数据库PDO添加记录

    我希望让用户将记录添加到空数据库表中 事实上 我有一个数据库和一个空表 必须使用表单填写 第一个文件处理数据库连接 我使用PDO 返回一个空页面和一个名为 add 的链接 该链接转到表单
  • 数据类对象或数组

    我有一个 Kotlin 数据类 它的 arg 可以是对象或数组 有没有一种方法可以将字符串反序列化到此类中 并且不关心是否不是数组 而是以某种方式将其放入一个数组中 data class Game var name List
  • Cloud Functions Puppeteer 无法打开浏览器

    我在 GCF 中的设置 install npm install save puppeteer来自项目云 shell 像这样编辑 package json dependencies puppeteer 19 2 2 粘贴代码来自媒体网站 ht
  • Julia:为图书馆建立 OOP 模型的最佳方法是什么

    我正在尝试创建一个图书馆 假设我有一个模型 其中有一个输出 输入和描述函数的方程 输入为 x 1 2 3 4 5 6 y 5 2 4 8 9 2 我把它放入一个函数中 returns y values function fit x a b
  • flutter firebase 推送通知图标

    I made an app and I implemented push notifications and it works but I ve tried to change the default icon with a image p
  • 在 python 中使用 meshlab 函数

    我是 3D 新手 我有一个点云 我想使用 python 库形成一个网格 但我可以使用网格实验室函数 这些函数是 过滤器 gt 点集 gt 计算点集的法线 和 过滤器 gt 重新划分网格 简化和重建 gt 曲面重建 Poission 有没有什
  • 在 Azure VM 中使用 Booksleeve Redis 客户端时出现 Redis 连接错误

    我最近开始在新的 Azure VM 上托管我的一个业余项目 该应用程序使用 Redis 作为内存缓存 在我的本地环境中一切都工作正常 但现在我已将代码移至 Azure 我发现 Booksleeve 出现了一些奇怪的异常 当应用程序第一次启动
  • Powershell:引号解析不一致/奇怪的行为?

    全部 我正在尝试使用 PowerShell 编译程序 但该命令的解析方式很奇怪 此命令在 cmd exe 中正确执行 dmd od bin of bin convHull exe I src src concSort d src fileP
  • 如何左对齐 SWT ToolItem 中的文本?

    我正在升级 RCP 应用程序以使用 Eclipse 4 2 1 我遇到的问题之一是工具栏中文本的对齐方式发生了变化 我可以使用以下片段重现该问题 该片段改编自标准SWT 片段 http git eclipse org c platform
  • 如何在Python中重新分配列表中的项目?

    我想在 Python 中重新分配列表中的每个项目 In 20 l 1 2 3 4 5 In 21 for i in l i i 1 但名单根本没有改变 In 22 l Out 22 1 2 3 4 5 我想知道为什么会这样 任何人都可以详细
  • 网络浏览器是否需要在客户端计算机上安装 IE

    我只是想知道是否有任何版本的 I E 部署使用 webbrowser 控件的应用程序时必须安装在客户端计算机上 目标 net 2 平台 Thanks 当您使用 添加 删除 Windows 组件 小程序来 删除 Internet Explor
  • (VB6) 逐行读取文本文件查找特定单词

    下午好 StackOverflow 我刚刚在这里注册 我已经使用这个网站很多年了 它似乎总是提供答案的网站 所以我决定参与其中 废话不多说 这是我的问题 我正在为 LAN 各方编写一个 API 我和一个团队每月都会使用该 API 来帮助解决
  • 了解汇编级别 ++i 和 i++ 之间的区别

    我知道这个问题的变体已经在这里被问过多次 但我并不是在问两者之间有什么区别 只是想要一些帮助来理解这两种形式背后的组装 我认为我的问题与whys比到what的差异 我正在阅读Prata 的 C Primer Plus在处理增量运算符的部分
  • C++ select() 不等待超时时间

    我正在尝试使用 select 函数来接受输入 但如果用户没有输入任何内容 则每 2 秒执行一次其他操作 下面的代码在第一次到达 select 时等待两秒 但是一旦打印出第一个 超时 消息 它就会快速继续打印 超时 而不等待 2 秒 基本上进