Solaris 2.x への移行

ioctl() 要求

dkio(7I)filiomtio(7I)sockio(7I)streamio(7I)termio(7I)termios(7I) に関連するすべての ioctl は、Solaris 2.6 でサポートされます。

SunOS 4.x の termios 構造体と Solaris 2.6 の termios構造体との間に、互換性のない部分がいくつかあります。例えば SunOS 4.x の termios 構造体にはある c_line フィールドが、Solaris 2.6 には含まれていません。

<sys/ttold.h> に定義がある次の ioctl は、実装されていません。

次の ttycom ioctl 要求は Solaris 2.6 にはありません。

Solaris 2.6 でサポートされる ioctl()表 16-1 に示します。

表 16-1 ioctl() のサポート

ioctl()

説明 

DKIOCGPART

これらの要求は、Solaris 2.6 では DKIOCGAPARTDKIOCSAPART に置き換えられる。

DKIOCGCONF

この要求は、Solaris 2.6 では、SunOS 4.x の DKIOCGCONFDKIOCINFO 構造体の情報を合わせたものが含まれる DKIOCINFOに置き換えられる。

DKIOCSCMD

この要求は、IPI ドライブに対してのみ正常に実行される。この ioctl は、SCSI デバイスでは異常終了する。SCSI デバイスに対しては、USCSI ioctl を使用する。

DKIOCGLOG

EINVAL が戻される。DKIOCWCHK コマンドは、フロッピーデバイスに対する書き込みチェックを切り換える。

filio

次の filio ioctl 要求は、Solaris 2.6 または SVR4 ではサポートされていない: FIOSETOWNFIOGETOWNFIOCLEXFIONCLEXfilioioctl 要求は ABI または SVID では、定義されていない。

mtio

Solaris 2.6 では mtio ioctl 要求のすべてをサポートしていないデバイスもある。マニュアルページの mtio(7) を参照のこと。

sockio

次の sockio ioctl 要求は、SVR4 と Solaris 2.6 において実装されている:SIOCSPGRP, SIOCGPGRPSIOCATMARKsockio ioctl 要求は ABI または SVID では、定義されていない。

streamio

すべての SunOS 4.x の streamio ioctl 要求は、Solaris 2.6 、ABI、SVID、および SVR4 に実装されている。I_FDINSERT 要求は、strfdinsert 構造体を指す引数が必要となる。SunOS 4.x の strfdinsert 構造体は fd (int) フィールドを含むが、ABI、SVID、または SVR4 strfdinsert 構造体は fd (int) フィールドを含む。

audioio

SunOS 4.x の <sun/audioio.h> ファイルは、Solaris 2.6 では <sys/audioio.h> に移動されている。さらに、Solaris 2.6 では、インタフェースの機能が強化されている。詳細については、audio(7)audioamd(7)dbri(7) マニュアルページを参照のこと。

termio, termios

すべての SunOS 4.x の termio、および termios ioctl 要求は、Solaris 2.6、ABI、SVID、および SVR4 に実装される。SunOS 4.x termios 構造体と Solaris 2.6 、あるいは ABI、SVID、または SVR4 termios 構造体との間には一部互換性がない。SunOS 4.x の termios構造体には、他のリリースでサポートされない c_line フィールドがある。c_cflag (端末のハードウェア制御) の内容は SunOS 4.x ソフトウェアでは CRTSCTS (RTS/CTS フロー制御を有効にする) が可能だが、この値は Solaris 2.6 リリース、ABI、SVID、または SVR4 には定義がない。しかし、機能性は termiox(7) インタフェースを通してサポートされる。