⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strerror.c

📁 标准c库代码,可以应用于各个系统提供了大量的基本函数
💻 C
字号:
/******* CAUTION!!! KEEP DOC CONSISTENT---if you change text of a message****            here, change two places:****            1) the leading doc section (alphabetized by macro)****            2) the real text inside switch(errnum)***//*FUNCTION	<<strerror>>---convert error number to stringINDEX	strerrorANSI_SYNOPSIS	#include <string.h>	char *strerror(int <[errnum]>);TRAD_SYNOPSIS	#include <string.h>	char *strerror(<[errnum]>)	int <[errnum]>;DESCRIPTION<<strerror>> converts the error number <[errnum]> into astring.  The value of <[errnum]> is usually a copy of <<errno>>.If <<errnum>> is not a known error number, the result points to anempty string.This implementation of <<strerror>> prints out the following stringsfor each of the values defined in `<<errno.h>>':o+o E2BIGArg list too longo EACCESPermission deniedo EADVAdvertise erroro EAGAINNo more processeso EBADFBad file numbero EBADMSGBad messageo EBUSYDevice or resource busyo ECHILDNo childreno ECOMMCommunication erroro EDEADLKDeadlocko EEXISTFile existso EDOMMath argumento EFAULTBad addresso EFBIGFile too largeo EIDRMIdentifier removedo EINTRInterrupted system callo EINVALInvalid argumento EIOI/O erroro EISDIRIs a directoryo ELIBACCCannot access a needed shared libraryo ELIBBADAccessing a corrupted shared libraryo ELIBEXECCannot exec a shared library directlyo ELIBMAXAttempting to link in more shared libraries than system limito ELIBSCN<<.lib>> section in a.out corruptedo EMFILEToo many open fileso EMLINKToo many linkso EMULTIHOPMultihop attemptedo ENFILEFile table overflowo ENODEVNo such deviceo ENOENTNo such file or directoryo ENOEXECExec format erroro ENOLCKNo locko ENOLINKVirtual circuit is goneo ENOMEMNot enough spaceo ENOMSGNo message of desired typeo ENONETMachine is not on the networko ENOPKGNo packageo ENOSPCNo space left on deviceo ENOSRNo stream resourceso ENOSTRNot a streamo ENOTBLKBlock device requiredo ENOTDIRNot a directoryo ENOTTYNot a character deviceo ENXIONo such device or addresso EPERMNot ownero EPIPEBroken pipeo EPROTOProtocol erroro ERANGEResult too largeo EREMOTEResource is remoteo EROFSRead-only file systemo ESPIPEIllegal seeko ESRCHNo such processo ESRMNTSrmount erroro ETIMEStream ioctl timeouto ETXTBSYText file busyo EXDEVCross-device linko-RETURNSThis function returns a pointer to a string.  Your application mustnot modify that string.PORTABILITYANSI C requires <<strerror>>, but does not specify the strings usedfor each error number.Although this implementation of <<strerror>> is reentrant, ANSI Cdeclares that subsequent calls to <<strerror>> may overwrite theresult string; therefore portable code cannot depend on the reentrancyof this subroutine.<<strerror>> requires no supporting OS subroutines.QUICKREF	strerror ansi pure*/#include <errno.h>#include <string.h>char *_DEFUN (strerror, (errnum),	int errnum){  char *error;  switch (errnum)    {    case EPERM:      error = "Not owner";      break;    case ENOENT:      error = "No such file or directory";      break;    case ESRCH:      error = "No such process";      break;    case EINTR:      error = "Interrupted system call";      break;    case EIO:      error = "I/O error";      break;    case ENXIO:      error = "No such device or address";      break;    case E2BIG:      error = "Arg list too long";      break;    case ENOEXEC:      error = "Exec format error";      break;    case EBADF:      error = "Bad file number";      break;    case ECHILD:      error = "No children";      break;    case EAGAIN:      error = "No more processes";      break;    case ENOMEM:      error = "Not enough space";      break;    case EACCES:      error = "Permission denied";      break;    case EFAULT:      error = "Bad address";      break;    case ENOTBLK:      error = "Block device required";      break;    case EBUSY:      error = "Device or resource busy";      break;    case EEXIST:      error = "File exists";      break;    case EXDEV:      error = "Cross-device link";      break;    case ENODEV:      error = "No such device";      break;    case ENOTDIR:      error = "Not a directory";      break;    case EISDIR:      error = "Is a directory";      break;    case EINVAL:      error = "Invalid argument";      break;    case ENFILE:      error = "File table overflow";      break;    case EMFILE:      error = "Too many open files";      break;    case ENOTTY:      error = "Not a character device";      break;    case ETXTBSY:      error = "Text file busy";      break;    case EFBIG:      error = "File too large";      break;    case ENOSPC:      error = "No space left on device";      break;    case ESPIPE:      error = "Illegal seek";      break;    case EROFS:      error = "Read-only file system";      break;    case EMLINK:      error = "Too many links";      break;    case EPIPE:      error = "Broken pipe";      break;    case EDOM:      error = "Math argument";      break;    case ERANGE:      error = "Result too large";      break;    case ENOMSG:      error = "No message of desired type";      break;    case EIDRM:      error = "Identifier removed";      break;    case EDEADLK:      error = "Deadlock";      break;    case ENOLCK:      error = "No lock";      break;    case ENOSTR:      error = "Not a stream";      break;    case ETIME:      error = "Stream ioctl timeout";      break;    case ENOSR:      error = "No stream resources";      break;    case ENONET:      error = "Machine is not on the network";      break;    case ENOPKG:      error = "No package";      break;    case EREMOTE:      error = "Resource is remote";      break;    case ENOLINK:      error = "Virtual circuit is gone";      break;    case EADV:      error = "Advertise error";      break;    case ESRMNT:      error = "Srmount error";      break;    case ECOMM:      error = "Communication error";      break;    case EPROTO:      error = "Protocol error";      break;    case EMULTIHOP:      error = "Multihop attempted";      break;    case EBADMSG:      error = "Bad message";      break;    case ELIBACC:      error = "Cannot access a needed shared library";      break;    case ELIBBAD:      error = "Accessing a corrupted shared library";      break;    case ELIBSCN:      error = ".lib section in a.out corrupted";      break;    case ELIBMAX:      error = "Attempting to link in more shared libraries than system limit";      break;    case ELIBEXEC:      error = "Cannot exec a shared library directly";      break;    default:      error = "";      break;    }  return error;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -