- C 標準庫
- C 庫 - 首頁
- C 庫 - <assert.h>
- C 庫 - <complex.h>
- C 庫 - <ctype.h>
- C 庫 - <errno.h>
- C 庫 - <fenv.h>
- C 庫 - <float.h>
- C 庫 - <inttypes.h>
- C 庫 - <iso646.h>
- C 庫 - <limits.h>
- C 庫 - <locale.h>
- C 庫 - <math.h>
- C 庫 - <setjmp.h>
- C 庫 - <signal.h>
- C 庫 - <stdalign.h>
- C 庫 - <stdarg.h>
- C 庫 - <stdbool.h>
- C 庫 - <stddef.h>
- C 庫 - <stdio.h>
- C 庫 - <stdlib.h>
- C 庫 - <string.h>
- C 庫 - <tgmath.h>
- C 庫 - <time.h>
- C 庫 - <wctype.h>
- C 標準庫資源
- C 庫 - 快速指南
- C 庫 - 有用資源
- C 庫 - 討論
- C 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
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
廣告