新聞中心
在Linux操作系統(tǒng)中,err函數(shù)是一個非常實用的函數(shù)之一。這個函數(shù)可用于顯示與錯誤相關(guān)的信息和退出程序,使其成為Linux編程中必不可少的一部分。但是,如果不正確使用err函數(shù),可能會導(dǎo)致程序崩潰或無法正常工作。因此,在本文中,我們將介紹err函數(shù)的正確使用方法,幫助您更好地掌握Linux編程的技巧。

理解err函數(shù)
在開始介紹err函數(shù)的使用方法之前,我們需要先理解它的作用。err函數(shù)是一個C語言庫函數(shù),可以在Linux中用于在程序中記錄錯誤信息。當(dāng)程序出現(xiàn)錯誤時,err函數(shù)會向標(biāo)準(zhǔn)錯誤流中輸出錯誤信息并退出程序。err函數(shù)的一般頭文件為 #include
err函數(shù)是基于C語言中的stdarg.h頭文件的可變參數(shù)列表實現(xiàn)的。因此,當(dāng)使用err函數(shù)時,可以向函數(shù)中添加參數(shù)以指定錯誤代碼和錯誤信息。例如,下面是一個使用err函數(shù)顯示錯誤信息的代碼示例:
“`c
#include
#include
#include
int mn(int argc, char *argv[])
{
// read file
FILE *fp = fopen(“test.txt”, “r”);
if(fp == NULL)
{
err(EXIT_FLURE, “Error opening file: %s”, “test.txt”);
}
// do something else
printf(“Program executes successfully.\n”);
return EXIT_SUCCESS;
}
“`
在上面的代碼示例中,在打開test.txt文件時,如果文件不存在,err函數(shù)將向標(biāo)準(zhǔn)錯誤流中輸出錯誤信息,并退出程序。
正確使用err函數(shù)
當(dāng)使用err函數(shù)時,有幾個注意事項需要牢記。
1. 提供有意義的錯誤信息
當(dāng)程序出現(xiàn)錯誤時,err函數(shù)向標(biāo)準(zhǔn)錯誤流中輸出的錯誤信息對于調(diào)試和故障排除非常有用。因此,提供有意義的錯誤信息對于調(diào)試程序至關(guān)重要。在上面的示例中,err函數(shù)提供了一個錯誤消息:“Error opening file: %s”。它向用戶說明了打開文件失敗的原因。
2. 給出有意義的錯誤代碼
err函數(shù)在向標(biāo)準(zhǔn)錯誤流中輸出錯誤信息時還會提供錯誤代碼。這些錯誤代碼可以幫助調(diào)用err函數(shù)的程序自動識別錯誤類型。例如,EXIT_FLURE是一種在文件I/O操作中經(jīng)常使用的錯誤代碼。在上述代碼實例中,err函數(shù)使用了這個代碼以指明錯誤的類型。
3. 盡可能在主函數(shù)中調(diào)用err函數(shù)
盡可能在主函數(shù)中調(diào)用err函數(shù)可使錯誤信息更容易地捕獲和處理。因此,盡可能地避免在庫函數(shù)或子函數(shù)中調(diào)用err函數(shù)。
4. 不要使用exit函數(shù)
err函數(shù)將在輸出到標(biāo)準(zhǔn)錯誤流后調(diào)用exit函數(shù),因此不再需要在err函數(shù)之后添加調(diào)用exit函數(shù)。
5. 不要忽略返回值
如同任何其他函數(shù),err函數(shù)也會提供返回值。因此,一定不要忽略err函數(shù)返回的值。
結(jié)論
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220linux中編程中errno != EINTR
在linuxC的read函數(shù)中,errno = EINTR時圓腔表示因為中斷而暫停。那么這個if的條件句意思橘猛衫是返回值為-1并且不是由于中斷而停止調(diào)用知纖的意思。
linux標(biāo)準(zhǔn)輸入輸出
linux中有三種標(biāo)準(zhǔn)輸入輸出,分別是STDIN,STDOUT,STDERR,對應(yīng)的數(shù)字是0,1,2。
STDIN是標(biāo)準(zhǔn)輸入,默認(rèn)從鍵盤讀取信息;
STDOUT是標(biāo)準(zhǔn)輸出,默認(rèn)將輸出結(jié)果輸出至終端;
STDERR是標(biāo)準(zhǔn)錯誤,默認(rèn)將輸出結(jié)果輸出至終端。
由于STDOUT與STDERR都會默認(rèn)顯示在終端上,為了區(qū)分,就有了編號的0,1,2的定義,用1表示STDOUT,2表示STDERR。
2>&1,指將標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤指定為同一輸出路徑
舉輪坦栗子:
eg1:cat >>filetest 2>&1 find.out 2>find.err,會將STDOUT與STDERR分別存放至find.out和find.err中。該命令也可以寫成下面三種形式
find /etc -name passwd 1>find.out 2>find.err
find /etc -name passwd 2>find.err >find.out
find /etc -name passwd 2>find.err 1>find.out
3、若要將所有標(biāo)準(zhǔn)輸出及標(biāo)毀告準(zhǔn)錯誤都輸出至文件,可用&表示全部1和2的信息,eg:
find /etc -name passwd &>find.all 或 find /etc -name passwd >find.all 2>&1
4、2>&1 —標(biāo)準(zhǔn)錯誤重新定向到標(biāo)準(zhǔn)輸出
5、用法:臘余桐find /etc -name passwd &2>&1 |less
可分解成
find /etc -name passwd & 表示前面的命令放到后臺執(zhí)行。
2>&1 |less 表示將標(biāo)準(zhǔn)錯誤重定向至標(biāo)準(zhǔn)輸出,并用less進行分頁顯示
關(guān)于linux err()()的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
新聞名稱:Linux專業(yè)技巧:err函數(shù)的正確使用方法(linuxerr())
網(wǎng)站URL:http://www.5511xx.com/article/cogscjg.html


咨詢
建站咨詢
