gpt4 book ai didi

c - 如何使用 c 检查用户在 stty 中为删除/退格设置的内容

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:19 25 4
gpt4 key购买 nike

在 Unix 中,某些键的默认设置因平台而异。例如,在 Ubuntu 中删除可能是 erase = ^?。但是,对于 AIX,它可能与示例 erase = ^H 完全不同。如何检查 C 中的 stty 设置?

这是我想写的

#include<stdio.h>
#include<stdlib.h>
#include<termios.h>
#include<unistd.h>

int main()
{
struct termios term;

if(tcgetattr(STDIN_FILENO, &term) < 0)
{
printf("Error to get terminal attr\n");
}

printf("The value for Erase is %s\n",term.c_cc[ERASE]);

return 0;
}

用gcc编译后。它说 ERASE 未声明。那么我应该使用的正确选项或变量实际上是什么?

最佳答案

printf("The value for Erase is %s\n",term.c_cc[ERASE]); 应该是 printf("The value for Erase is %d\n",term.c_cc[VERASE]);,参见 termios(3)了解更多详情。

删除字符的符号索引是VERASEc_cc[VERASE]的类型是cc_t,在我的系统中,cc_tunsigned char,所以应该用 %c%d 打印。

关于c - 如何使用 c 检查用户在 stty 中为删除/退格设置的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897452/

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