perrorとは?初心者でも分かる使い方とエラー対応の基本ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
perrorとは?初心者でも分かる使い方とエラー対応の基本ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


perrorとは?

perrorはC言語の標準ライブラリにある関数で、直近のシステムコールやライブラリ関数が返したエラーの説明を、標準エラー出力に表示します。errnoに格納されたエラー番号を使い、分かりやすいメッセージを出力することで、デバッグを手助けします。

基本的な仕組み

errnoは、最近発生したエラーの番号を保持するグローバル変数です。perrorはこの errno の値を、対応する日本語の説明と一緒に出力します。出力先は通常 stderr、つまり標準エラー出力です。

使い方の例

ファイルを開く操作を行い、失敗した場合にはエラーメッセージを出力します。例として以下のように使います。

例: perror("open");

errnoとperrorの関係

多くのケースでは、直後に perror を呼ぶのが基本です。errno が設定されている状態で perror を呼ぶと、指定した文字列と errno に対応するエラーメッセージが出力されます。

strerrorとの違いと使い分け

strerror(errno) は errno の値から文字列を受け取り、対応する説明文を返す関数です。これを使って自分のフォーマットでメッセージを組み立てたり、ログファイルへ書き出したりできます。一方 perror は出力を一括して行うので、簡易なデバッグ時には便利です。用途によって使い分けましょう。

出力先と注意点

perror は stderr に出力します。複数のスレッドが同じ errno を参照する問題にも気をつけ、エラーハンドリングは errno の設定直後に完結させるのが基本です。

表でざっくり整理

関数 説明
perror errnoの値に対応するエラーメッセージを stderr に表示します
strerror errno を受け取り、対応する文字列を返します
errno 直近のシステムコールのエラー番号を保持するグローバル変数

実務でのコツ

ログとして長期保存する場合は、strerror で得た文字列を自分のフォーマットに合わせて使うと良いです。errno の値を別に記録しておくと、後で原因追跡がしやすくなります。

まとめ

perror はエラーハンドリングの基本ツールです。初心者は errno の役割と perror の出力先を理解するだけで、デバッグがぐっと楽になります。


perrorの同意語

perror
errnoに対応するエラーメッセージを標準エラー出力へ表示するC言語の標準ライブラリ関数
perror関数
errnoの値に対応するエラーメッセージを標準エラー出力へ表示する関数(perror の正式名称)
エラーメッセージ出力関数
エラーメッセージを表示するための処理。errnoに紐づくメッセージを標準エラー出力へ出力する機能を指す
エラーメッセージ表示関数
エラーメッセージを画面やログに表示するための関数。主に errno の値に基づくメッセージを出力する
errnoエラーメッセージ出力関数
errno の値に紐づくエラーメッセージを標準エラー出力へ表示する関数
標準エラー出力へのエラーメッセージ表示
エラーメッセージを標準エラー出力 (stderr) に表示する処理
C言語のエラーメッセージ出力関数
C言語の標準ライブラリでエラーメッセージを出力する機能全般を指す
strerrorを用いたエラーメッセージ表示
strerror(errno) によって得られるエラーメッセージを表示する処理
strerror(errno)によるエラーメッセージ表示
errno の値に対応するエラーメッセージ文字列を取得して表示する処理
エラー情報の出力処理
エラー情報を外部へ通知・記録するための出力処理の総称

perrorの対義語・反対語

正常終了
処理がエラーを出さず、正常に完了した状態を指します。perror がエラー情報を通知する状況の反対です。
エラーなし
エラーが発生していない状態。errno に対応するエラー情報がなく、perror が表示すべき内容がない状態を意します。
成功
目的の処理が達成され、想定どおりに進む状態。エラーが発生していない結果を示します。
OK
特に問題がなく、許容範囲内の良好な状態を示します。短くて日常的な表現です。
無事
トラブルなく終わった状態。問題や障害がなく完了したことを表します。
正常
機能や結果が正しく、異常がない状態。全体として健全であることを示します。
問題なし
特に欠陥や障害が見当たらない状態。修正の必要がない、良好な評価を示します。

perrorの共起語

perror
エラー情報を標準エラー出力に表示するC言語の標準ライブラリ関数。 errno の値に対応するメッセージを、任意の前置文字列とともに出力します。
errno
エラー番号を格納するグローバル変数。システムコールが失敗したときに設定され、perror や strerror で参照します。
errno.h
errno を使うためのヘッダファイル。#include でエラー番号と関連定数を利用できます。
strerror
errno の値を人間が読める文字列に変換する関数。perror の内部実装でも使われることがあります。
EACCES
アクセス権限が不足していることを示すエラーコード。ファイルの読み書きやディレクトリ操作で発生します。
ENOENT
指定したファイルやディレクトリが存在しないことを示すエラーコード
ENOMEM
メモリが不足していることを示すエラーコード。
EINVAL
不正な引数やパラメータが無効な場合に設定されるエラーコード。
EEXIST
同じ名前のファイルやディレクトリがすでに存在することを示すエラーコード。
ENOSPC
ディスクやファイルシステムの空き容量が不足していることを示すエラーコード。
EBADF
不正なファイルディスクリプタを使ったときに設定されるエラーコード
EPIPE
パイプの相手が閉じた後に書き込みを試みたときに発生するエラーコード
EPERM
操作が許可されていないときのエラーコード。
ESRCH
指定したプロセスが見つからないときのエラーコード。
ETIMEDOUT
待機や操作がタイムアウトしたときのエラーコード。
stderr
標準エラー出力。perror はこの出力先にメッセージを出力します。
fprintf
形式指定子を用いて任意の FILE* に出力する関数。perror による出力と関係することがあります。
C言語
このエラーハンドリングはC言語の標準ライブラリと共通的に使われます。
POSIX
Unix系の標準規格。errno や perror などのエラーハンドリングはPOSIX準拠の環境で広く利用されます。
エラーハンドリング
プログラムで発生したエラーを検出し、適切に対処する一連の処理のこと。perror などを用いて原因を通知します。
エラーメッセージ
エラーの原因を人が理解できるようにした文字列。strerror や perror が出力します。

perrorの関連用語

perror
C 言語の標準ライブラリ関数。直前に設定された errno の値を元に、引数として渡す文字列とともにエラーメッセージを標準エラー出力へ表示します。s が NULL でなければ「s: 」という接頭辞も付けて表示します。
errno
システムコールやライブラリ関数がエラーを返したときに設定されるグローバルなエラー番号。POSIX ではスレッドごとに独立して持ちます。
strerror
errno の値を人間が読める文字列に変換する関数。perror や errno だけでなく、エラーメッセージを自分で組み立てたいときに使います。
errno.h
errno の宣言とエラーマクロ(E? 系)を定義するヘッダファイル。#include が必要です。
ENOENT
No such file or directory。指定したファイルやディレクトリが存在しない場合のエラー。
EACCES
Permission denied。許可が不足してファイルやディレクトリにアクセスできない場合のエラー。
ENOMEM
Out of memory。メモリを確保できない場合のエラー。
ENOSPC
No space left on device。ディスクやストレージの空き容量が不足している場合のエラー。
EEXIST
File exists。作成しようとしたファイルが既に存在する場合のエラー。
EBADF
Bad file descriptor。無効なファイルディスクリプタを使ったときのエラー。
EINVAL
Invalid argument。有効でない引数を関数に渡したときのエラー。
EPIPE
Broken pipe。パイプが閉じられている状態で書き込みを試みたときのエラー。
ENOTDIR
Not a directory。途中のパスがディレクトリではない場合のエラー。
ETIMEDOUT
Timed out。操作がタイムアウトになった場合のエラー。
strerror_r
strerror_r はスレッドセーフな strerror の実装。スレッド間で安全に errno メッセージを取得できます。
stderr
標準エラー出力。perror は通常この出力先へエラーメッセージを出します。
fprintf(stderr, ... )
標準エラー出力へフォーマット付き文字列を出力する方法。perror の代替手段として使えます。
GetLastError
Windows API で直近のエラーコードを取得する関数。POSIX の errno に相当する役割です。
FormatMessage
GetLastError で得たエラーコードを人間が読める文字列に変換する関数。Windows でのエラーメッセージ取得に使います。

インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14414viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2396viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1062viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1020viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
918viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
888viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
822viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
817viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
789viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
774viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
706viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
670viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
583viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
559viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
552viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
543viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
505viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
480viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
463viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
456viws

新着記事

インターネット・コンピュータの関連記事