perror 在头文件<stdio.h>中定义voidperror(constchar*s); 打印到stderr由s(由s空指针指向的)以空字符结尾的字符串的内容,后跟两个字符":",后面跟着实现定义的错误消息
cmath>#include<cerrno>#include<cstdio>intmain(){doublenot_a_number=std::log(-1.0);if(errno==EDOM){std::perror
fp){perror("file1.txt");return1;}puts("Createdfile1.txt");fclose(fp);intrc=remove("file1.txt");if(rc)
fp){perror("from.txt");return1;}fputc('a',fp);//writeto"from.txt"fclose(fp);intrc=rename("from.txt","
ok){std::perror("Errorcreatingfrom.txt");return1;}intrc=std::rename("from.txt","to.txt");if(rc){std::
fp){std::perror("fopen");return1;}structstatstats;if(fstat(fileno(fp),&stats)==-1){//POSIXonlystd::perror
ok){std::perror("Errorcreatingfile1.txt");return1;}std::cout<<std::ifstream("file1.txt").rdbuf()<<'\n
SIZE];fp=fopen("test.bin","rb");longintpos=ftell(fp);/*positionindicatoratstartoffile*/if(pos==-1L){perror
fp){perror("fopen()failed");returnEXIT_FAILURE;}//Anewlyopenedstreamhasnoorientation.show(fwide(fp,0)
库函数perror,strerror可用于获取与当前errno值对应的错误条件的文本描述。
=0)/*currentposition:startoffile*/{perror("fgetpos()");fprintf(stderr,"fgetpos()failedinfile%satline#
cwchar>intmain(){std::setlocale(LC_ALL,"en_US.utf8");intrc=std::fputws(L"御休みなさい",stdout);if(rc==EOF)std::perror
stdio.h>#include<stdlib.h>#include<sys/stat.h>intmain(void){FILE*fp=fopen("test.txt","r");if(fp==NULL){perror
fp){std::perror("Fileopeningfailed");returnEXIT_FAILURE;}intc;//note:int,notchar,requiredtohandleEOFwhile
log to standard error, and use a user defined// logging mechanismopenlog("myScriptLog", LOG_PID | LOG_PERROR
iffailurecausedbyend-of-filecondition*/puts("Endoffilereached");elseif(ferror(stdin))/*iffailurecausedbysomeothererror*/{perror
fp){perror("Fileopeningfailed");returnEXIT_FAILURE;}intc;//note:int,notchar,requiredtohandleEOFwhile(
include<wchar.h>intmain(void){setlocale(LC_ALL,"en_US.utf8");intrc=fputws(L"御休みなさい",stdout);if(rc==EOF)perror