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();
   }
}

相關資訊