C 庫 - perror() 函式



C 庫的 perror() 函式旨在將描述性錯誤訊息列印到標準錯誤流 (stderr),這有助於除錯和理解程式中出現的問題。

語法

以下是 C 庫 perror() 函式的語法:

void perror(const char *str);

引數

此函式只接受一個引數:

  • str: 指向一個空終止字串的指標,該字串將在錯誤訊息之前列印。如果此字串不為 NULL 且不為空,則其後將跟一個冒號和一個空格 (: )。此字串通常表示錯誤發生時的上下文或函式。

返回值

perror() 不返回值。它是一個 void 函式。其主要目的是將錯誤訊息列印到 stderr。

示例 1:開啟一個不存在的檔案

此示例嘗試開啟一個不存在的檔案。fopen() 設定 errno 以指示錯誤,而 perror() 列印有關失敗的描述性訊息。

以下是 C 庫 perror() 函式的示例。

#include <stdio.h>
#include <errno.h>

int main() {
    FILE *file = fopen("non_existent_file.txt", "r");
    if (file == NULL) {
        perror("Error opening file");
    } else {
        fclose(file);
    }
    return 0;
}

輸出

以上程式碼產生以下結果:

Error opening file: No such file or directory

示例 2:在不可寫目錄中建立檔案

此示例嘗試在使用者沒有寫許可權的目錄中建立檔案。fopen() 失敗,將 errno 設定為 EACCES,而 perror() 列印相應的錯誤訊息。

#include <stdio.h>
#include <errno.h>

int main() {
    FILE *file = fopen("/non_writable_directory/new_file.txt", "w");
    if (file == NULL) {
        perror("Error creating file");
    } else {
        fclose(file);
    }
    return 0;
}

輸出

執行以上程式碼後,我們將得到以下結果:

Error creating file: Permission denied
廣告

© . All rights reserved.