C標準エラー処理関数fprintfとprintf

3433 ワード

ソースコードには、次のエラー処理関数がよく表示されます.
一、errno
ヘッダファイル:#include
関数プロトタイプ:errno
機能:システムの最後のエラーコードを記録する
パラメータ:なし
戻り値:エラーコード(整数値)
例:1
2
3
4
5

  if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
        fprintf(stderr, "errno = %d
"
, errno);
        exit(1);
    }
printf("Socket opened successfully
"
);
//errno 。


二、strerror strerror_r
ヘッダファイル:#include
関数のプロトタイプ:
char *strerror(int errnum);
char *_strerror(const char *strErrMsg);
wchar_t * _wcserror(int errnum);
wchar_t * __wcserror(const wchar_t *strErrMsg);
パラメータ:errnum-エラーコード、strErrMsg-ユーザーが提供する情報.
戻り値:エラー情報へのポインタ.1
2
3
4
5

      if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
        fprintf(stderr, "errno = %d
"
, errno);
        fprintf(stderr, "Error description is : %s
"
,strerror(errno));
        exit(1);
    } 
    //strerror(errno) errno , fprintf 。


三、perror
ヘッダファイル:
#include< stdio.h >  
#include
関数のプロトタイプ:
void perror(const char *s);
perror ("open_port");
関数の機能:
perror()は、前の関数でエラーが発生した原因を標準デバイス(stderr)に出力するために使用されます.パラメータsが指す文字列は先に印刷され、エラー原因文字列が追加されます.このエラーの原因は、グローバル変数errnoの値に基づいて出力する文字列を決定します.
ライブラリ関数にerrno変数があり、各errno値は文字列で表されるエラータイプに対応します.「いくつかの」関数を呼び出すとエラーが発生し、errnoの値が再設定されました.perror関数は、入力した情報と現在のerrnoに対応するエラーを出力するだけです.
≪パラメータ|Parameters|ldap≫:ユーザーが入力した文字列
戻り値:なし
例:1
2
3
4
5
6
7
8

      if(( sockfd = socket(AF_INET,SOCK_DGRAM,0))<0)
    {
        perror("myError");
        exit(1);
    } else 
    {
        printf("socket created successfully!
"
);
    }
    // myError( perror ), errno 。
    // ,stderr 。


四、fprintfとprintf
#include
 
int fprintf(FILE *stream,const char *format,…);
formatフォーマットに従ってstreamストリームにパラメータを送信します.
 
int printf(const char *format,…);
標準出力装置からデータのセットを出力します.