- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
更新: Simple Proof of Concept解释不同的行为。
假设我使用 tcgetattr
和 tcsetattr
设置 VMIN = 0, VTIME = 0
并删除 ICANON
,将终端设置为原始模式。从 stdin 调用 read()
永远不会阻塞。我说得对吗?
我的问题是:我应该期望标准输入上的 select()
立即返回吗?
从手册页:
select()
andpselect()
allow a program to monitor multiple file descriptors, waiting until one or more of the file descriptors become "ready" for some class of I/O operation (e.g., input possible). A file descriptor is considered ready if it is possible to perform the corresponding I/O operation (e.g., read(2)) without blocking.
基于此,我的第一个回答是"is"。但是,实际上它确实在我测试过的大多数 Linux 系统上会阻塞,但在某些系统上不会阻塞。 这是内核错误吗? 是否建议以这种方式使用 VMIN = 0
和 select()
?
最佳答案
问题可能是这样的:VMIN
的数组条目和 VTIME
有两个目的。引用POSIX termios :
the VMIN and VTIME subscripts may have the same values as the VEOF and VEOL subscripts, respectively.
程序读取attributes
规范模式下的值,然后将其更改为非规范模式,并设置 VMIN
归零。但是 version shown对 VTIME
什么都不做(这与问题中的描述不符)。
参见示例 Understanding UNIX termios VMIN and VTIME (同样,Linux manual page 用于 termios),它指出如果两个 VMIN
和 VTIME
为零,那么您就可以进行完全非阻塞的读取。
termios 手册页将零作为 VEOL
的初始值, 而 stty manual页等于<undef>
与 _POSIX_VDISABLE
(非零)(与 POSIX stty 一致)。 POSIX 似乎没有为 eol
指定初始值.
通常 VEOL
将是 <undef>
如图所示 stty -a
.也许在您获得非阻塞读取的机器上,情况并非如此。这不一定是内核错误,但可能是 TTY 的配置问题。
关于linux - VMIN=0 + select(),可能是内核错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197646/
描述 我有一个奇怪的错误,当使用 vmin 设置时,边框会导致内容和边框本身之间出现小间隙。单位。 可重现的片段 调整窗口大小以查看它,因为它只发生在某些设备视口(viewport)上 body {
我正在尝试创建许多彼此相邻的正方形 div(如果文本太多,它们的高度会扩展......但大多数时候不会有太多文本)。我正在尝试以响应式方式进行设置。 在页面上滚动时,我的移动浏览器中的地址栏不断出现和
在这种情况下,我想创建一个颜色条,其颜色(与散点图相关联)跨越特定范围,但仅显示颜色条本身上该范围的子集。我可以用 contourf 来做到这一点,因为我可以独立于轮廓级别设置 vmin 和 vmax
我编写了图像校准脚本(暗框和平场)...这是代码的一部分 for n in range(len(img)): with pyfits.open(img[n], mode='update', mem
更新: Simple Proof of Concept解释不同的行为。 假设我使用 tcgetattr 和 tcsetattr 设置 VMIN = 0, VTIME = 0 并删除 ICANON,将终
问题 我正在尝试设置我的根 font-size 以在 calc() 中使用 vmin 和 px > 功能。当使用 rem 设置圆 div 的 height 和 width 时,所述圆在小尺寸时被“压扁
我正在使用 hist2d 在 python 中绘制一些数据。对于色标的标准化,我使用参数 norm=matplotlib.colors.LogNorm(). 如何获得(后验)matplotlib 分配
我正在使用 hist2d 在 python 中绘制一些数据。对于色标的标准化,我使用参数 norm=matplotlib.colors.LogNorm(). 如何获得(后验)matplotlib 分配
on my site我正在尝试创建一个可扩展的 ui othello 游戏。棋盘的每一 block 都应该是一个正方形。我使用表格作为董事会的标记。我使用的 css 是 #board td {
我正在尝试通过串口连接设备。设备每 700 毫秒发送一次 10 字节 轮询作为“心跳”。每次我读取心跳时,我都必须回复一个 12 字节 长的响应。 在此响应中,我可以请求设备在轮询之间发送特定数据。不
我是 bokeh 的新用户。虽然问题很简单我还没有找到答案。在bokeh库中,matplolib imshow的vmax和vmax等价的是什么?例如,在 Matplolib 中,我使用具有这些值的 v
我在一个项目中工作,我需要从我的 Linux (Ubuntu 12.04 LTS) 计算机的 USB 端口读取数据。 我正在使用读取函数以非规范模式从终端读取数据,并且 VTIME = 5(0.5 秒
我正在尝试为 Linux 编写一个简单的 C 串行通信程序。我对阻塞/非阻塞读取和 VMIN/VTIME 关系感到困惑。 我的问题是,是否应该根据我是否有阻塞/非阻塞打开调用来设置 VMIN/VTIM
我正在使用 GeoViews 绘制网格数据的 map ,如 gv.Image目的。目前,我的绘图功能如下所示: def plot_variable(path): var_ = xr.open_
有没有一种方法可以在同一个元素上同时使用 vmax 和 vmin,这样我就可以制作一个范围来阻止它变小或变大?当我只使用一个时,它会变大或变小,我试图限制它两侧的极端。这用于响应式设计。 http:/
我对 Autonumeric 插件有疑问: HTML Javascript //Init Autonumeric $("#testInput").autoNumeric('init', { aS
我有这段代码 .image.medium { width:10vmin; height:10vmin; } .image.small { width:6vmin; he
我正在改编我为跨平台兼容性而编写的一个简单的 Linux 串行库。大多数事情都会保留下来(尽管 Microsoft 坚持要重命名所有内容),但有一些我没能找到的功能。 我当前的问题是 VMIN 和 V
在使用 contourf 绘图时尝试调整数据范围时得到一个奇怪的结果 import matplotlib import numpy as np import matplotlib.cm as cm i
使用新的 vmin css 属性来获得正确的字体大小。效果非常好! div.sample { font-size: 1.5vmin; text-align: center; ... } 问题发生在调整
我是一名优秀的程序员,十分优秀!