strerror.c

来自「vxworks源码源码解读是学习vxworks的最佳途径」· C语言 代码 · 共 132 行

C
132
字号
/* strerror.c - string error, string *//* Copyright 1992-1993 Wind River Systems, Inc. *//*modification history--------------------01d,25feb93,jdi  documentation cleanup for 5.1.01c,30nov92,jdi  fixed doc for strerror() - SPR 1825.01b,20sep92,smb  documentation additions01a,08jul92,smb  written and documented.*//*DESCRIPTIONINCLUDE FILES: string.hSEE ALSO: American National Standard X3.159-1989NOMANUAL*/#include "vxWorks.h"#include "string.h"#include "errno.h"#include "symLib.h"#include "limits.h"#include "stdio.h"#include "sysSymTbl.h"#include "private/funcBindP.h"/* forward declarations */LOCAL STATUS strerrorIf (int errcode, char *buf);/********************************************************************************* strerror_r - map an error number to an error string (POSIX)** This routine maps the error number in <errcode> to an error message string.* It stores the error string in <buffer>.** This routine is the POSIX reentrant version of strerror().** INCLUDE FILES: string.h** RETURNS: OK or ERROR.** SEE ALSO: strerror()*/STATUS strerror_r     (    int    errcode,	/* error code */    char * buffer	/* string buffer */    )    {    return (strerrorIf (errcode, buffer));    }/********************************************************************************* strerror - map an error number to an error string (ANSI)** This routine maps the error number in <errcode> to an error message string.* It returns a pointer to a static buffer that holds the error string.** INCLUDE: string.h** RETURNS: A pointer to the buffer that holds the error string.** SEE ALSO: strerror_r()*/char * strerror    (    int errcode		/* error code */    )    {    static char buffer [NAME_MAX];    (void) strerror_r (errcode, buffer);    return (buffer);    }/********************************************************************************* strerrorIf - interface from libc to VxWorks for strerror_r** RETURNS: OK, or ERROR if <buf> is null.* NOMANUAL*/LOCAL STATUS strerrorIf     (    int   errcode,		/* error code */    char *buf			/* string buffer */    )    {    int		value;    SYM_TYPE	type;    char	statName [NAME_MAX];    if (buf == NULL)	return (ERROR);    if (errcode == 0)	{        strcpy (buf, "OK");	return (OK);	}    if ((_func_symFindByValueAndType != (FUNCPTR) NULL) && (statSymTbl != NULL))	{	(* _func_symFindByValueAndType) (statSymTbl, errcode, statName, &value,					 &type, SYM_MASK_NONE, SYM_MASK_NONE);	if (value == errcode)	    {	    strcpy (buf, statName);	    return (OK);	    }	}    sprintf (buf, "errno = %#x", errcode);    return (OK);    }

⌨️ 快捷键说明

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