stdioShow.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* stdioShow.c - standard I/O show library */
  2. /* Copyright 1984-1993 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01f,17mar99,jdi  doc: updated w/ info about proj facility (SPR 25727).
  8. 01e,16sep93,jmm  cleaned up warnings about printf args
  9. 01d,15sep93,kdl  fixed man page for stdioShowInit() (SPR #2244).
  10. 01c,05mar93,jdi  documentation cleanup for 5.1.
  11. 01b,20sep92,smb  documentation additions
  12. 01a,29jul92,jcf  created.
  13. */
  14. /*
  15. DESCRIPTION
  16. This library provides a show routine for file pointers.
  17. NOMANUAL
  18. */
  19. #include "vxWorks.h"
  20. #include "stdio.h"
  21. #include "sys/types.h"
  22. #include "stdlib.h"
  23. #include "taskLib.h"
  24. #include "fioLib.h"
  25. #include "classLib.h"
  26. #include "errnoLib.h"
  27. #include "private/objLibP.h"
  28. #include "private/stdioP.h"
  29. /******************************************************************************
  30. *
  31. * stdioShowInit - initialize the standard I/O show facility
  32. *
  33. * This routine links the file pointer show routine into the VxWorks system.
  34. * It is called automatically when this show facility is
  35. * configured into VxWorks using either of the following methods:
  36. * .iP
  37. * If you use the configuration header files, define
  38. * INCLUDE_SHOW_ROUTINES in config.h.
  39. * .iP
  40. * If you use the Tornado project facility, select INCLUDE_STDIO_SHOW.
  41. *
  42. * RETURNS: OK, or ERROR if an error occurs installing the file pointer show
  43. * routine.
  44. */
  45. STATUS stdioShowInit (void)
  46.     {
  47.     classShowConnect (fpClassId, (FUNCPTR)stdioShow);
  48.     return (OK);
  49.     }
  50. /*******************************************************************************
  51. *
  52. * stdioShow - display file pointer internals
  53. *
  54. * This routine displays information about a specified stream.
  55. *
  56. * RETURNS: OK, or ERROR if the file pointer is invalid.
  57. */
  58. STATUS stdioShow
  59.     (
  60.     FAST FILE * fp, /* stream */
  61.     int level /* level */
  62.     )
  63.     {
  64.     if (OBJ_VERIFY (fp, fpClassId) != OK)
  65. return (ERROR); /* invalid file pointer */
  66.     printf ("%-20s: %#-10xn", "Owning Task", fp->taskId);
  67.     printf ("%-20s: %-10hdn", "File Descriptor", fp->_file);
  68.     printf ("%-20s: %#-10xn", "Current Position", (unsigned int) fp->_p);
  69.     printf ("%-20s: %#-10xn", "Read Space Left", fp->_r);
  70.     printf ("%-20s: %#-10xn", "Write Space Left", fp->_w);
  71.     printf ("%-20s: %#-10xn", "Buffer Base", (unsigned int) fp->_bf._base);
  72.     printf ("%-20s: %#-10xn", "Buffer Size", fp->_bf._size);
  73.     printf ("%-20s: %#-10xn", "Ungetc Buffer Base",
  74.     (unsigned int) fp->_ub._base);
  75.     printf ("%-20s: %#-10xn", "Ungetc Buffer Size", fp->_ub._size);
  76.     printf ("%-20s: %#-10xn", "Line Buffer Base", (unsigned int) fp->_lb._base);
  77.     printf ("%-20s: %#-10xn", "Line Buffer Size", fp->_lb._size);
  78.     printf ("%-20s: %#-10xn", "stat.st_blksize", fp->_blksize);
  79.     printf ("%-20s: %#-10xn", "lseek Offset", fp->_offset);
  80.     printf ("%-20s: %#-10hxn", "Flags", fp->_flags);
  81.     /* someday display the buffer contents with level >= 1 */
  82.     return (OK);
  83.     }