perror - ライブラリコールの説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 説明
- 準拠
- 注意
- 関連項目
名前
perror - システムエラーメッセージを出力する
書式
#include <stdio.h>
void perror(const char
*s
);
#include <errno.h>
const char *
sys_errlist
[];
int
sys_nerr
;
int
errno
;
説明
関数
perror
()は、システムコールやライブラリ関数の呼び出しにおいて、最後に発生した
エラーに関する説明メッセージを生成し、標準エラー出力に出力する。
(
s
が NULL でなく、
*
s
が NULL バイト ('\0') でない場合には) 引き数の文字列
s
がまず出力され、続いてコロン、空白が出力され、
それからメッセージと改行が出力される。
このメッセージを最大限活用するためには、引き数文字列にエラーが発生した
関数名を入れておくとよい。
エラー番号は外部変数
errno
から取得される。
errno
はエラーが発生した時に設定され、エラーが発生しない呼び出しでは
クリアされない。
大域変数のエラーリスト
sys_errlist
[]は
errno
を添字とする配列で、この配列から改行無しのエラーメッセージが取得される。
テーブルでの最大のメッセージ番号は
sys_nerr
-1となる。
このテーブルを直接参照する際には注意すること。なぜなら、新しいエラー番号が
sys_errlist
[]に追加済とは限らないからである。
システムコールが失敗した場合、通常、返り値として -1 が返り、
errno
にエラーを識別する値が設定される (設定されるエラー番号は
<errno.h>
に記載されている)。
多くのライブラリ関数も同様の動作となる。
関数
perror
()は、このエラーコードの可読なメッセージへの変換を行う。
errno
は、ライブラリ呼び出しが成功した後には未定義であることに注意が必要である:
その呼び出し自身は成功したとしても、内部で呼び出した他のライブラリ関数が
失敗して、その結果をこの変数に設定することがあるからだ。
よって、失敗した呼び出しの直後に
perror
()を呼ばない場合には
errno
の値を
保存しておかなければならない。
準拠
関数
perror
()と外部変数
errno
(
errno
(3)参照) は C89, 4.3BSD, POSIX.1-2001 に準拠している。
外部変数
sys_nerr
と
sys_errlist
は BSD に準拠している。
注意
外部変数
sys_nerr
と
sys_errlist
は glibc で定義されているが、
<stdio.h>
に含まれている。
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする