主要メッセージの手引き

データメッセージではありません。

原因

STREAMS デバイスに対する read(2)getmsg(2)、または ioctl(2) I_RECVFD コールで、データの一部が処理できないキューの先頭に移動します。この場合のデータはコールによって異なります。

  1. read(2) - 情報を制御するか、ファイル記述子を渡します。

  2. getmsg(2) - ファイル記述子を渡します。

  3. ioctl(2) - データ情報を制御します。

テクニカルノート

このエラーの記号名は、EBADMSGerrno=77 です。

定義されたデータ型に対して値が大きすぎます。

原因

IPC オブジェクトまたはファイルシステムオブジェクトのユーザー ID またはグループ ID が大きすぎて、呼び出し側が提供した構造体の適切なメンバーに格納できません。

対処方法

より新しいシステムでアプリケーションを実行するか、またはプログラムの作成者に解決を依頼してください。

テクニカルノート

このエラーは、宣言されたメンバー構造体のサポート範囲よりも大きな範囲のユーザー ID 値またはグループ ID 値をサポートしているシステムでのみ表示されます。通常、この状態は、IPC またはファイルシステムオブジェクトが、ローカルシステムのものよりも大きな uid_t 型、off_t 型、または gid_t 型の値を持つリモートマシン上にあるため発生します。

このエラーの記号名は、EOVERFLOWerrno=79 です。

ディスクの割当てを超えています。

原因

ユーザーファイルシステムでユーザーのディスク制限を超過しました。通常、制限を超えてファイルが作成されたか、またはファイルが制限よりも大きくなったことが原因です。これは、磁気ディスクで発生することがほとんどで、光ディスクでは発生しません。この状態の発生後に作成されたデータは失われることがあります。

対処方法

ユーザーがファイルを削除して、ディスクの使用度を制限以下にするか、またはサーバー管理者が edquota(1M) コマンドを使用して、ユーザーのディスク制限を緩和します。

テクニカルノート

このエラーの記号名は、EDQUOTerrno=49 です。

ディレクトリが空ではありません。

原因

rmdir(1) によるディレクトリ削除などのディレクトリ操作は、空ディレクトリに対してのみ実行できます。

対処方法

ディレクトリを削除するには、まず、このディレクトリに含まれているファイルをすべて削除します。空でないディレクトリ階層を削除する簡単な方法は、rm -r コマンドを使用することです。

テクニカルノート

このエラーの記号名は、ENOTEMPTYerrno=93 です。

ディレクトリです。

原因

ディレクトリに対して、ファイルであるかのように読み取りまたは書き込みを行おうとしました。

対処方法

カレントディレクトリ内の全ファイルのリストを調べて、ディレクトリではなく、ファイルを指定しもう一度実行します。

テクニカルノート

このエラーの記号名は、EISDIRerrno=21 です。

ディレクトリではありません。

原因

パスの接頭辞や chdir(2) システムコールの引数など、ディレクトリが必要な部分でディレクトリ以外を指定しました。

対処方法

カレントディレクトリ内の全ファイルのリストを参照してから、ファイルの代わりにディレクトリを指定して、もう一度実行してください。

テクニカルノート

このエラーの記号名は、ENOTDIRerrno=20 です。

テキストファイルは使用中です。

原因

このエラーは、書き込みのために現在開いている手続きのみの (共用テキスト) ファイルを実行しようとした場合や、実行中の手続きのみのファイルを書き込みのために開こうとしたり、削除しようとしたりする場合に発生します。このメッセージは現在は使用されていません。

テクニカルノート

このエラーの記号名は、ETXTBSYerrno=26 です。

デッドロック状態が検出され回避されました。

原因

プログラミングのデッドロック状態が検出され、回避されました。

対処方法

システムがデッドロックを検出し回避しなかった場合は、ソフトウェアの一部がハングします。そのプログラムを再度実行してください。デッドロックが再び起こることはないかもしれません。

テクニカルノート

このエラーは、通常、ファイルとレコードのロックに関連しています。ただし、mutex、セマフォ、条件変数、読み取り/書き込みロックが対象になる場合もあります。

このエラーの記号名は、EDEADLKerrno=45 です。

関連項目

システムインタフェース』のデッドロック処理に関する節を参照してください。また、『マルチスレッドのプログラミング』のデッドロック回避に関する節も参照してください。

デバイス上の空き領域が足りません。

原因

通常ファイルの書き込み時またはディレクトリエントリの作成時に、デバイスに空き領域が残っていません。ディスク、テープ、またはフロッピーディスクがデータでいっぱいです。この状態のときに書き込まれたすべてのデータが失われる可能性があります。

対処方法

書き込みたいデータをすべて収めるのに必要な領域が空くまで、ハードディスクまたはフロッピーディスクから不要なファイルを削除します。一部のディレクトリを別のファイルシステムに移動して、それに応じたシンボリックリンクを作成することを推奨します。テープがいっぱいの場合は、残りを別のテープに収めるか、高密度設定を使用するか、または大容量のテープを使用します。

マルチボリュームのテープまたはフロッピーディスクを作成するには、pax(1) または cpio(1) コマンドを使用します。現時点では、tar(1) はシングルボリュームに制限されています。

テクニカルノート

このエラーの記号名は、ENOSPCerrno=28 です。

デバイスにまたがるリンクになります。

原因

別のファイルシステムなど、別のデバイス上のファイルに対してハードリンクしようとしました。

対処方法

ln -s を使用してシンボリックリンクを確立します。シンボリックリンクは、ファイルシステムの境界を越えることができます。

テクニカルノート

このエラーの記号名は、EXDEVerrno=18 です。

デバイスは使用中です。

原因

マウント済みのデバイスにマウントしようとしたか、またはアクティブなファイル (オープンファイル、カレントディレクトリ、マウントポイント、実行中のプログラムなど) が入っているデバイスへのマウントを解除しようとしました。また、このメッセージは、すでに使用可能状態になっているアカウンティングを使用可能にしようとした場合にも表示されます。

対処方法

アクティブプロセスを含むデバイスのマウントを解除するには、そのマウントポイントの下にあるすべてのファイルを閉じ、そこから開始しているプログラムがあれば終了し、ディレクトリをその階層から変更します。次に、もう一度マウントを解除します。

テクニカルノート

mutex、セマフォ、条件変数、読み取り/書き込みロックは、このエラー状態を設定することによって、ロックが保持されていることを示します。

このエラーの記号名は、EBUSYerrno=16 です。

デバイスは使用中です。

原因

eject cdrom を実行して上記のメッセージが表示される場合、原因はさまざまです。チェックすべき内容と、デバイスから CD を取り出す方法を次に示します。

対処方法

ステップ A: カレントディレクトリが CD の中ではないことを確認します。


 % cd
 % eject cdrom

ステップ B: root として次のコマンドを実行します。


# cd /etc/init.d
# ./volmgt stop
# eject cdrom 
これが機能した場合は、次のコマンドを実行してみます。

# ./volmgt start 
これが機能しない場合は、ステップ C に進みます。

ステップ C: root として次のコマンドを実行します。


# fuser /cdrom  
終了したと考えられるプロセスに対して kill を実行します。これが NFS マウントの CD-ROM で、このドライブにアクセスする他のユーザーがいる場合は、終了するプロセスが何かをその理由とともに知っておく必要があります。

# ./volmgt stop
#  ps -ef | grep vold 
vold がまだ存在する場合は、そのプロセスを終了します。

# eject cdrom 
これが有効でない場合は、次のコマンドを実行します。

# cd /vol 
devdskrdskrmt がディレクトリにあることを確認します。これらがディレクトリにない場合は、/vol ディレクトリが破壊されている可能性が高く、再起動して適切に再構築する必要があります。

ステップ D: 最後に 3 つの方法があります。

  1. 再起動します。

  2. CD ドライブが外付けの場合は、ドライブの電源を入れて、取り出しボタンを押します。

  3. CD-ROM が外付けで、前述の 2 つの方法が失敗した場合は、取り出しボタンの右側の小さな穴に、細いまっすぐな棒状のものを挿入して、手動で CD-ROM を取り出します。

デバイスへの ioctl が正しくありません。

原因

これはプログラミングエラーです。

対処方法

プログラムの作成者に、この状態を解消するように依頼します。特殊な文字型デバイスの制御を受け入れられるように、プログラムを修正する必要があります。

テクニカルノート

ioctl(2) システムコールが、特殊な文字型デバイスではないファイルの引数として与えられました。このメッセージは、分かりにくかった従来の「Not a typewriter」メッセージに代わるものです。

このエラーの記号名は、ENOTTYerrno=25 です。