next up previous
次へ: dio_ioctlメソッドの作成 上へ: ioctlを使ったプログラム 戻る: ioctlのコマンドcmd

サンプルプログラム

次のサンプルプログラムを実行して、ioctlシステムコールを理解する こと。

なお、通常のioctlシステムコールのプログラムはヘッダファイルの<sys/ioctl.h>をインクルードすれば、それが<asm/termbits.h>もインク ルードすることになっているが、この処理系では<asm/termbits.h>を明示 的にインクルードした。

#include <sys/ioctl.h>
//#include <asm/termios.h>
#include <asm/termbits.h>
#include <stdio.h>

int main(void)
{
   char buff[BUFSIZ];
   struct termio tty, tty_save;

   ioctl(0, TCGETA, &tty);
   tty_save = tty;

//   printf("tty.c_lflag = %o\n", tty.c_lflag); ==> 105073

   tty.c_lflag ^= ECHO;
   tty.c_lflag |= ECHONL;

   ioctl(0, TCSETAF, &tty);

   printf("Password: ");
   fgets(buff, BUFSIZ, stdin);
   printf("Password = %s", buff);

   ioctl(0, TCSETAF, &tty_save);

   return 0;
}



MANOME Yoichi 平成19年1月6日