perror ()- 列印錯誤訊息
格式
#include <stdio.h>
void perror(const char *string);語言層次
ANSI
安全執行緒
是
說明
perror() 函數會將錯誤訊息列印至 stderr。 如果 string 不是 NULL ,且未指向空值字元,則 string 所指向的字串會列印至標準錯誤串流,後面接著冒號及空格。 然後會列印與 errno 中的值相關聯的訊息,後面接著換行字元。
若要產生精確的結果,您應該確保在程式庫函數傳回錯誤之後立即呼叫 perror() 函數; 否則,後續呼叫可能會變更 errno 值。
回覆值
此方法不會傳回任何值。
errno 的值可以設為:
- Value
- 意義
- EBADDATA
- 訊息資料無效。
- EBUSY
- 記錄或檔案正在使用中。
- ENOENT
- 找不到檔案或檔案庫。
- EERM
- 存取權限不足。
- ENOREC
- 找不到記錄。
- EIOERROR
- 發生非可回復I/O錯誤。
- EIORECERR
- 發生可回復I/O錯誤。
範例
此範例嘗試開啟串流。 如果
fopen() 失敗,範例會列印訊息並結束程式。#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fh;
if ((fh = fopen("mylib/myfile","r")) == NULL)
{
perror("Could not open data file");
abort();
}
}