一.錯誤報告
1.perror()函數是一種簡單、統一的方式報告錯誤。ansi c 函數庫的許多函數調用操作系統來完成某些任務,I/O函數尤其如此。任何時候,當操作系統根據要求執行一些任何的時候,都存在失敗的可能。標准庫函數在一個外部整型變量errno(在errno.h中定義)中保存錯誤代碼之後把這個信息傳遞給用戶程序,提示操作失敗的准確原因。
2.perror()函數的原型:
#include<stdio.h>
void perror(charconst *message);
如果message不是NULL並且指向一個非空的字符串,perror函數就打印出這個字符串,後面跟一個分號和一個空格,然後打印出一條用於解釋errno當前錯誤代碼的信息。
3.perrno函數的最大優點是容易使用。良好的編程實踐要求任何可能產生錯誤的操作讀應該在執行之後進行檢查,確定它是否成功執行。
說明:
只有當一個庫函數失敗時,errno才會被設置。當函數成功執行時,errno的值不會被需改。因此,不能通過測試errno的值來判斷是否有錯誤發生。所以只有當被調用的函數提示有錯誤發生時檢查errno的值才有意義。
二.終止執行
1.終止執行的函數是exit,它用於終止一個程序的執行。
2.它的原型為:
#include<stdlib.h>
void exit(intstatus);
3.status參數返回給操作系統,用於提示程序是否正常完成。
這個值和main()函數返回的整型狀態值相同。預定義符號EXIT_SUCCESS和EXIT__FAILURE分別提示程序的終止是成功還是失敗。
4.當程序發現錯誤情況使它無法繼續執行下去時,可以使用該函數。我們經常會在調用perrno之後再調用exit終止程序
5.該函數沒有返回值。當exit函數結束之後,程序已經消失。
三.文本流
1.流分為兩種類型,文本(text)流和二進制流(binary)流。
2.文本流的有些特性在不同的系統中可能不同。其中之一就是文本的行的最大長度。 標准規定至少允許254個字符。另一個可能不同的特性是文本行的結束方式。
1>在MS-DOS系統中,文本行預定以一個回車符和一個換行符結尾。
2>在UNIX系統中只使用一個換行符結尾。
3.標准文本行定義為零個或多個字符,後面跟一個表示結束的換行符。