POSIX _POSIX_VDISABLE 值如果为-1,则所有终端设备文件都没有特殊字符的禁用字符;否则该值为禁用字符值。
请任何人帮助我理解这一点。我无法理解这句话的确切含义。
请
如果您查看特殊字符的定义,这应该意味着(三个“-1”值),所有这些特殊字符都是活动的:
在规范输入中,终端驱动程序识别许多执行各种控制功能的特殊字符。
其中包括用于编辑输入的ERASE字符(通常为DEL)以及其他编辑字符。用于发送信号的
INTR 字符(通常为Ctrl- )和其他发出信号的字符可以在规范或非规范输入模式下使用。cSIGINT
你有很多这样的特殊字符:
1997 年有人提出了这样的问题,看看这样的值是否可移植(总是可以编译):
2.9.4节的措辞:
如果表 2-11 中的任何常量在标头中被定义为值为 -1 ....
可以建议,在随意阅读时,使用如下代码来最小化大小并优化每个实现的效率:
#ifdef _POSIX_VDISABLE
#if _POSIX_VDISABLE == -1
/* code that assumes no vdisable capability */
#else
/* code that assumes vdisable capability */
#endif
#else
/* code that uses pathconf() to determine vdisable capability */
#endif
Run Code Online (Sandbox Code Playgroud)
解释#34表明它会的。
通过在编译时使用这些值,可移植的 POSIX.1 应用程序可以避免在定义符号时加载与表 2-11 中的符号关联的所有 pathconf() 相关代码。