EN JA
SNP(4)
SNP(4) FreeBSD Kernel Interfaces Manual SNP(4)

名称

snptty スヌープ (のぞき見) インタフェース

書式

#include < sys/snoop.h>

int
ioctl( fd, SNPSTTY, &dev);

int
ioctl( fd, SNPGTTY, &dev);

int
ioctl( fd, FIONREAD, &result);

解説

/dev/snp は、ユーザがあらゆる tty にアタッチでき、それで活動を監視することができるスヌープ (のぞき見) デバイスです。カーネルは、これらのデバイスを利用可能にするために、 device snp でコンパイルされなければならないか、または snp モジュールをロードしなければなりません。

与えられた snp デバイスを観察される tty に関連させるためには、 snp デバイスと tty デバイスをオープンし、次に snp デバイスで SNPSTTY ioctl を発行します。 ioctl(2) に渡された引数は、tty デバイスのファイル記述子を保持しているタイプ int の変数のアドレスです。 tty から snp デバイスをデタッチするためには、-1 の値へのポインタを使用します。

SNPGTTY ioctl は、オープンした snp デバイスにアタッチされた現在の tty に関する情報を返します。

FIONREAD ioctl は、読み込みバッファ中の文字の数と等しい正の値を返します。定義された特別の値は、次の通りです:

SNP_OFLOW
デバイスのオーバフローが発生して、デバイスは、デタッチされました。
SNP_TTYCLOSE
tty は、アタッチされていません。
SNP_DETACH
snp デバイスは、ユーザによってデタッチされたか、または tty デバイスは、クローズされ、デタッチされました。

関連項目

pty(4), sio(4), kldload(8), watch(8)

歴史

snp デバイスは、 FreeBSD 2.1 ではじめて登場しました。 FreeBSD 8.0 では、 snp ドライバは、置き換えられた TTY サブシステムで動作するように書き直されました。

作者

現在の実装の作者は、 Ed Schouten <ed@FreeBSD.org>です。 snp の以前のバージョンは、 Ugen J.S. Antsilevich <ugen@NetVision.net.il>によって書かれたコードに基づいていました。

バグ

snp のこのバージョンは、 FIONREAD を呼び出すとき、適切なエラーコードを返しません。また、 SNPSTTY は、TTY からそれ自体をデタッチすることができません。
November 5, 2008 FreeBSD