strerror函數(shù) perror函數(shù)和strerror函數(shù)的區(qū)別?
perror函數(shù)和strerror函數(shù)的區(qū)別?首先,很明顯這兩個(gè)函數(shù)的定義是不同的:peror(s)用于將前一個(gè)函數(shù)的錯(cuò)誤原因輸出到stderr。首先打印參數(shù)s指示的字符串,然后打印錯(cuò)誤原因字符串。此
perror函數(shù)和strerror函數(shù)的區(qū)別?
首先,很明顯這兩個(gè)函數(shù)的定義是不同的:peror(s)用于將前一個(gè)函數(shù)的錯(cuò)誤原因輸出到stderr。首先打印參數(shù)s指示的字符串,然后打印錯(cuò)誤原因字符串。此錯(cuò)誤的原因是要輸出的字符串由全局變量errno的值決定(errno是返回左值的宏)。庫函數(shù)中有一個(gè)errno變量,每個(gè)errno值對應(yīng)一個(gè)字符串表示的錯(cuò)誤類型。調(diào)用“some”函數(shù)error時(shí),該函數(shù)已重置errno的值。PERROR函數(shù)只是輸出一些您輸入的信息,以及當(dāng)前errno的相應(yīng)錯(cuò)誤。StrError函數(shù)通過標(biāo)準(zhǔn)錯(cuò)誤的標(biāo)簽獲取錯(cuò)誤的描述字符串,并將簡單的錯(cuò)誤標(biāo)簽轉(zhuǎn)換為描述字符串,方便用戶查找錯(cuò)誤。其次,了解兩個(gè)函數(shù)原型的區(qū)別:perror()原型:#include
C語言,嘗試fopen()讀寫文件為什么會引發(fā)下面的“應(yīng)用程序錯(cuò)誤”?
自定義錯(cuò)誤消息#defineerror(STR)fatalerror(STR)#definefatalerror(STR)fprintf(stderr,%sn,STR),exit(1)實(shí)際上是打印出一行錯(cuò)誤消息,它只為為了讓人知道名字和意思,沒有必要糾結(jié)!