.\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" From: @(#)err.3 8.1 (Berkeley) 6/9/93 .\" $FreeBSD: src/lib/libc/gen/err.3,v 1.11.2.5 2001/08/17 15:42:32 ru Exp $ .\" .\" 2007-12-08, mtk, Converted from mdoc to man macros .\" .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI .\" all rights reserved. .\" Translated 2003-03-10, Akihiro MOTOKI .\" .TH ERR 3 2007-12-28 "Linux" "Linux Programmer's Manual" .SH 名前 err, verr, errx, verrx, warn, vwarn, warnx, vwarnx \- エラーメッセージを整形する .Nd .SH 書式 .nf .B #include .sp .BI "void err(int " eval ", const char *" fmt ", ...);" .sp .BI "void errx(int " eval ", const char *" fmt ", ...);" .sp .BI "void warn(const char *" fmt ", ...);" .sp .BI "void warnx(const char *" fmt ", ...);" .sp .B #include .sp .BI "void verr(int " eval ", const char *" fmt ", va_list " args ); .sp .BI "void verrx(int " eval ", const char *" fmt ", va_list " args ); .sp .BI "void vwarn(const char *" fmt ", va_list " args ); .sp .BI "void vwarnx(const char *" fmt ", va_list " args ); .fi .SH 説明 .BR err () 関数群と .BR warn () 関数群は、エラーメッセージを整形して標準エラー出力に表示する。 どの関数の場合も、(ディレクトリ部分を省いた)プログラム名、 コロン 1個、スペース 1個が出力される。 .I fmt 引き数が NULL でない場合、 .BR printf (3) と同様に整形が行われ、エラーメッセージが出力される。 出力は改行文字で終わる。 .PP \"O motoki: based on a code or 〜 の「a code」とは? 関数 .BR err (), .BR verr (), .BR warn (), .BR vwarn () は、コードまたはグローバル変数 .I errno に基づいて .BR strerror (3) から得たエラーメッセージを出力する。 .I fmt 引き数が NULL でない場合は、一個ずつのコロンとスペースに続けて出力する。 .PP 関数 .BR err (), .BR verr (), .BR warn (), .BR vwarn () は、エラーメッセージを探すためにグローバル変数 .I errno を使用する。 .PP 関数 .BR errx (), .BR warnx () はエラーメッセージを付け加えない。 .PP 関数 .BR err (), .BR verr (), .BR errx (), .BR verrx () は返り値を返さないが、引き数 .I eval の値を exit status に設定し終了する。 .SH 例 現在の .I errno の情報を表示し、終了する: .in +4n .nf if ((p = malloc(size)) == NULL) err(1, NULL); if ((fd = open(file_name, O_RDONLY, 0)) == \-1) err(1, "%s", file_name); .fi .in .PP エラーメッセージを表示し、終了する: .in +4n .nf if (tm.tm_hour < START_TIME) errx(1, "too early, wait until %s", start_time_string); .fi .in .PP エラーを警告表示する: .in +4n .nf if ((fd = open(raw_device, O_RDONLY, 0)) == \-1) warnx("%s: %s: trying the block device", raw_device, strerror(errno)); if ((fd = open(block_device, O_RDONLY, 0)) == \-1) err(1, "%s", block_device); .fi .in .SH 準拠 これらの関数は非標準の BSD 拡張である。 .\" .SH 歴史 .\" 関数 .\" .BR err () .\" と .\" .BR warn () .\" は .\" 4.4BSD .\" で初めて登場した。 .SH 関連項目 .BR error (3), .BR exit (3), .BR perror (3), .BR printf (3), .BR strerror (3)