home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / OS9_Unix.lzh / RSHSRC / strerror.c < prev    next >
C/C++ Source or Header  |  1992-09-10  |  933b  |  51 lines

  1. /*****************************************************
  2.  *    char *strerror(int errnum)
  3.  *        return pointer to a formatted error string
  4.  *        ip sept 92
  5.  */
  6.  
  7. #define ERR_FILE    "/dd/sys/errmsg"
  8.  
  9. #include <stdio.h>
  10.  
  11. static char errstr[80];
  12.  
  13. char *strerror(num)
  14. int num;
  15. {
  16.     char tmp[25];
  17.     FILE *fp, *fopen();
  18.  
  19.     /* format the error number */
  20.     sprintf(tmp,"%03d:%03d",(num>>8),(num&0xff));
  21.     if ( (fp=fopen(ERR_FILE,"r")) !=NULL){
  22.         while(fgets(errstr,sizeof(errstr),fp)){
  23.             if(strncmp(errstr,tmp,7) == 0){
  24.                 /* match found */
  25.                 errstr[ strlen(errstr)-1 ]=0;    /* kill terminating lf */
  26.                 fclose(fp);
  27.                 return (errstr);
  28.             }
  29.         }
  30.         fclose(fp);
  31.     }
  32.     /* if we're here the error file couldn't be opened or no match */
  33.     strcpy(errstr,tmp);
  34.     return (errstr);
  35. }
  36. #ifdef TEST
  37. main(argc,argv)
  38. int argc;
  39. char **argv;
  40. {
  41.     int i,j;
  42.     
  43.     while(--argc){
  44.         i=atoi(*++argv);
  45.         printf("code %d returns:\n",i);fflush(stdout);
  46.         puts(strerror( i));
  47.     }
  48. }
  49. #endif
  50.  
  51.