我是C和驱动程序编程的新手.目前,我正在编写用户空间驱动程序,使用Debian通过USB与RS232进行通信.在研究时,我遇到了以下一些代码.
tty.c_cflag &= ~PARENB; // No Parity
tty.c_cflag &= ~CSTOPB; // 1 Stop Bit
tty.c_cflag &= ~CSIZE;
tty.c_cflag |= CS8; // 8 Bits
Run Code Online (Sandbox Code Playgroud)
我理解这些行的后果,但是,如果每个控制标志常量(PARENB,CSTOPB等)与这些标志组合的长度相同,则这些操作才有意义.我似乎无法通过任何文件验证这一点(我迄今为止对C的主要不满之一,更难以找到易于理解的文档.)来证实这一点.
我想确保我正确理解程序,因为它是一种纯粹的归纳方法,我不确定为什么这些标志会被存储.有人可以验证这些发现,还是指出我可能会忽略的东西?
防爆.
tty.c_cflag hypothetically is 4-bits long, each of the flags from the
previous code block corresponding to bits 3, 2, 1, 0. Then I believe the
following is how these are stored, if we were to say flags PARENB (3) and
CSTOPB (2) are high, and the other two flags are disabled.
tty.c_cflag = 1100 …
Run Code Online (Sandbox Code Playgroud) 我正在重建70年代的老主脑视频游戏.
用户进行四位数猜测,然后将其记录为矢量.
我知道有一种方法可以将输入作为一个字符串接受,但是如果没有办法用一个单独的int输入来实现这一点,我会发现它很奇怪 - 我无法找到一个方法.
我当前设置它的方式,如果用户提供0003的输入,这将被记录为一个不足的数字错误,因为int的值被解释为简单3.不完全出乎意料,但是真的没办法使用int方法一次取所有四位数?
谢谢!
Ø
/ e考虑到游戏机制,输入3(数字错误不足)应与0003的输入区分开来;