ターミナルのエコーオフ Cプログラミング
このページの最終変更日:2005年 6月17日
linux等のSystem V系
#include <termio.h>
/************************************************************************
* ECHO ON にする *
************************************************************************/
static void echo_on()
{
struct termio buff;
(void)ioctl( 0, TCGETA, &buff );
buff.c_lflag |= ECHO;
buff.c_lflag |= ICANON;
(void)ioctl( 0, TCSETA, &buff );
}
/************************************************************************
* ECHO OFF にする *
************************************************************************/
static void echo_off()
{
struct termio buff;
(void)ioctl( 0, TCGETA, &buff );
buff.c_lflag &= ~ECHO; /* No echo */
buff.c_lflag &= ~ICANON; /* No ICANON */
(void)ioctl( 0, TCSETA, &buff );
}
Version7系、BSD系
#include <sgtty.h>
/************************************************************************
* ECHO ON にする *
************************************************************************/
static void echo_on()
{
struct sgttyb buff;
(void)ioctl( 0, TIOCGETP, &buff );
buff.sg_flags |= ECHO;
buff.sg_flags &= ~CBREAK;
(void)ioctl( 0, TIOCSETN, &buff );
}
/************************************************************************
* ECHO OFF にする *
************************************************************************/
static void echo_off()
{
struct sgttyb buff;
(void)ioctl( 0, TIOCGETP, &buff );
buff.sg_flags &= ~ECHO; /* No echo */
buff.sg_flags |= CBREAK; /* ON input process */
(void)ioctl( 0, TIOCSETN, &buff );
}
ホームページに戻る 前のページに戻る
苦情・質問・感想は 小林正幸(kobamasadummy@mub.biglobe.ne.jp) まで
(メールアドレス中のdummyは削除してください。ウイルスメール対策です)