dumpboardrc.c
上传用户:minyiyu
上传日期:2018-12-24
资源大小:864k
文件大小:1k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. #include <fcntl.h>
  2.  
  3. #define STRLEN          256
  4. #define BRC_MAXSIZE     50000
  5. #define BRC_MAXNUM      60
  6. #define BRC_STRLEN      15
  7. char    brc_name[ BRC_STRLEN ];
  8. int     brc_num;
  9. int     brc_list[ BRC_MAXNUM ];
  10. int     brc_changed = 0;
  11. char *
  12. brc_getrecord( ptr, name, pnum, list )
  13. char    *ptr, *name;
  14. int     *pnum, *list;
  15. {
  16.     int         num;
  17.     char        *tmp;
  18.     strncpy( name, ptr, BRC_STRLEN );
  19.     ptr += BRC_STRLEN;
  20.     num = (*ptr++) & 0xff;
  21.     tmp = ptr + num * sizeof( int );
  22.     if( num > BRC_MAXNUM ) {
  23.         num = BRC_MAXNUM;
  24.     }
  25.     *pnum = num;
  26.     memcpy( list, ptr, num * sizeof( int ) );
  27.     return tmp;
  28. }
  29. brc_initial( filename )
  30. char    *filename;
  31. {
  32.     char        brc_buf[ BRC_MAXSIZE ], *ptr;
  33.     int         fd, len, n;
  34.     if( (fd = open( filename, O_RDONLY )) != -1 ) {
  35.         len = read( fd, brc_buf, sizeof( brc_buf ) );
  36.         close( fd );
  37.         ptr = brc_buf;
  38.         while( ptr < &brc_buf[ len ] ) {
  39.             if( *ptr < 'A' || *ptr > 'z' )
  40.                 break;
  41.             ptr = brc_getrecord( ptr, brc_name, &brc_num, brc_list );
  42.             printf( "board: %st(%d)n", brc_name, brc_num );
  43.             for( n = 0; n < brc_num; n++ ) {
  44.                 printf( " %d", brc_list[n] );
  45.             }
  46.             printf( "n" );
  47.         }
  48.     }
  49. }
  50. main( argc, argv )
  51. char    *argv[];
  52. {
  53.     if( argc <= 1 ) {
  54.         printf( "Usage: %s .boardrcn", argv[0] );
  55.     } else {
  56.         brc_initial( argv[1] );
  57.     }
  58. }