dirent.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
  2. #if defined(_NO_PROTOTYPE) /* Old, crufty environment */
  3. #include <oldstyle/dirent.h>
  4. #elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
  5. #include <xpg4/dirent.h>
  6. #elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
  7. #include <posix/dirent.h>
  8. #elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
  9. #include <ods_30_compat/dirent.h>
  10. #else  /* Normal, default environment */
  11. /*
  12.  *   Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
  13.  * All Rights Reserved.
  14.  *
  15.  * The information in this file is provided for the exclusive use of
  16.  * the licensees of The Santa Cruz Operation, Inc.  Such users have the
  17.  * right to use, modify, and incorporate this code into other products
  18.  * for purposes authorized by the license agreement provided they include
  19.  * this notice and the associated copyright notice with any such product.
  20.  * The information in this file is provided "AS IS" without warranty.
  21.  */
  22. /* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
  23. /* Portions Copyright (c) 1979 - 1990 AT&T   */
  24. /*   All Rights Reserved   */
  25. /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF          */
  26. /* UNIX System Laboratories, Inc.                          */
  27. /* The copyright notice above does not evidence any        */
  28. /* actual or intended publication of such source code.     */
  29. #ifndef _DIRENT_H
  30. #define _DIRENT_H
  31. #pragma comment(exestr, "xpg4plus @(#) dirent.h 20.1 94/12/04 ")
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. #pragma pack(4)
  36. #define MAXNAMLEN 512 /* maximum filename length  */
  37. #ifndef MAXPATHLEN
  38. #define MAXPATHLEN 1024
  39. #endif
  40. #undef DIRBLKSIZ
  41. #define DIRBLKSIZ 1048 /* buffer size for fs-indep. dirs  */
  42. #ifndef _SYS_TYPES_H
  43. #include <sys/types.h>
  44. #endif
  45. #ifndef _SYS_DIRENT_H
  46. #define _SYS_DIRENT_H
  47. #ifdef __STDC__
  48. #pragma comment(exestr, "@(#) dirent.h 25.8 94/09/22 ")
  49. #else
  50. #ident "@(#) dirent.h 25.8 94/09/22 "
  51. #endif
  52. /*
  53.  * Copyright (C) 1988-1994 The Santa Cruz Operation, Inc.
  54.  * All Rights Reserved.
  55.  * The information in this file is provided for the exclusive use of
  56.  * the licensees of The Santa Cruz Operation, Inc.  Such users have the
  57.  * right to use, modify, and incorporate this code into other products
  58.  * for purposes authorized by the license agreement provided they include
  59.  * this notice and the associated copyright notice with any such product.
  60.  * The information in this file is provided "AS IS" without warranty.
  61.  */
  62. /* Copyright (c) 1984, 1986, 1987, 1988 AT&T */
  63. /*   All Rights Reserved   */
  64. /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
  65. /* The copyright notice above does not evidence any    */
  66. /* actual or intended publication of such source code. */
  67. /* #ident "@)#(head.sys:dirent.h 1.3" */
  68. /*
  69.  * The following structure defines the file
  70.  * system independent directory entry.
  71.  *
  72.  */
  73. #include <sys/types.h>
  74. #ifdef  _M_I386
  75. #pragma pack(4)
  76. #else
  77. #pragma pack(2)
  78. #endif
  79. #ifdef _INKERNEL
  80. /*
  81.  * dirent used by the kernel
  82.  */
  83. struct dirent {
  84. ino32_t d_ino; /* inode number of entry */
  85. off_t d_off; /* offset of disk directory entry */
  86. unsigned short d_reclen; /* length of this record */
  87. char d_name[MAXNAMLEN+1]; /* name of file */
  88. };
  89. #else /* !_INKERNEL */
  90. /*
  91.  * dirent as used by application code
  92.  * For now leave the declaration as is. When the new development system
  93.  * is implemented, ino_t may be ushort or ulong. If ino_t is ulong, there
  94.  * will be no d_pad field.
  95.  */
  96. struct dirent /* data from readdir() */
  97. {
  98. #if defined(_IBCS2)
  99. long d_ino;
  100. #else /* !_IBCS2 */
  101. ino_t d_ino; /* inode number of entry */
  102. #if defined(_INO_16_T)
  103. short d_pad; /* because ino_t is ushort */
  104. #endif /* defined(_INO_16_T) */
  105. #endif /* defined(_IBCS2) */
  106. off_t d_off; /* offset of disk directory entry */
  107. unsigned short d_reclen; /* length of this record */
  108. char d_name[MAXNAMLEN+1]; /* name of file */
  109. };
  110. #endif /* _INKERNEL */
  111. typedef struct dirent dirent_t;
  112. #pragma pack()
  113. #endif /* _SYS_DIRENT_H */
  114. #define d_fileno d_ino
  115. #define d_namlen d_reclen
  116. #ifdef __cplusplus
  117. }
  118. #endif
  119. #pragma pack()
  120. #endif /* _DIRENT_H */
  121. #endif