0

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未宣言と書いてあります。では、実際に使用すべき正しいオプションまたは変数は何ですか?

4

1 に答える 1

2

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)を参照してください。

消去文字の記号インデックスはVERASE; 私のシステムではisのタイプはc_cc[VERASE]isであるため、 orで出力する必要があります。cc_tcc_tunsigned char%c%d

于 2014-02-20T03:32:49.880 に答える