【C言語】perror関数の使い方【エラーメッセージの表示】

目次から探す

perror関数の応用例

perror関数は、エラーメッセージを表示するための便利な関数です。

以下では、ファイル操作、ネットワークプログラミング、システムコールの各場面でのperror関数の使い方について説明します。

ファイル操作でのperror関数の使い方

ファイル操作において、エラーが発生した場合にperror関数を使用することで、エラーメッセージを表示することができます。

以下は、ファイルをオープンする際にエラーが発生した場合に、perror関数を使用してエラーメッセージを表示する例です。


#include <stdio.h>
int main() {
    FILE *file = fopen("nonexistent_file.txt", "r");
    if (file == NULL) {
        perror("ファイルをオープンできませんでした");
        return 1;
    }
    
    // ファイルの処理
    
    fclose(file);
    return 0;
}

上記の例では、fopen関数で存在しないファイルをオープンしようとしています。

fopen関数が失敗すると、file変数にはNULLが代入されます。

その後、fileNULLであることをチェックし、エラーメッセージを表示するためにperror関数を使用しています。

エラーメッセージは、引数として渡した文字列と、errno変数に格納されているエラーコードに基づいて表示されます。

ネットワークプログラミングでのperror関数の使い方

ネットワークプログラミングにおいても、perror関数はエラーメッセージの表示に役立ちます。

以下は、ソケット通信でエラーが発生した場合にperror関数を使用してエラーメッセージを表示する例です。


#include <stdio.h>
#include <sys/socket.h>
int main() {
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd == -1) {
        perror("ソケットの作成に失敗しました");
        return 1;
    }
    
    // ソケットの処理
    
    close(sockfd);
    return 0;
}

上記の例では、socket関数でソケットを作成しています。

socket関数が失敗すると、sockfd変数には-1が代入されます。

その後、sockfdが-1であることをチェックし、エラーメッセージを表示するためにperror関数を使用しています。

システムコールでのperror関数の使い方

システムコールにおいても、perror関数はエラーメッセージの表示に利用できます。

以下は、forkシステムコールでエラーが発生した場合にperror関数を使用してエラーメッセージを表示する例です。


#include <stdio.h>
#include <unistd.h>
int main() {
    pid_t pid = fork();
    if (pid == -1) {
        perror("プロセスの作成に失敗しました");
        return 1;
    }
    
    // プロセスの処理
    
    return 0;
}

上記の例では、fork関数で新しいプロセスを作成しています。

fork関数が失敗すると、pid変数には-1が代入されます。

その後、pidが-1であることをチェックし、エラーメッセージを表示するためにperror関数を使用しています。

以上が、ファイル操作、ネットワークプログラミング、システムコールの各場面でのperror関数の使い方の例です。

エラーメッセージを適切に表示することで、プログラムのデバッグやエラー処理を行う際に役立ててください。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す