CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 # i f n d e f _ m y _ d i r _ h 00024 00025 # d e f i n e _ m y _ d i r _ h 00026 00027 # i f d e f _ _ c p l u s p l u s 00028 00029 e x t e r n " C " { 00030 00031 # e n d i f 00032 00033 # i f n d e f M Y _ D I R _ H 00034 00035 # d e f i n e M Y _ D I R _ H 00036 00037 # i n c l u d e < s y s / s t a t . h > 00038 00039 / * D e f i n e s f o r m y _ d i r a n d m y _ s t a t * / 00040 00041 # d e f i n e M Y _ S _ I F M T S _ I F M T / * t y p e o f f i l e * / 00042 00043 # d e f i n e M Y _ S _ I F D I R S _ I F D I R / * d i r e c t o r y * / 00044 00045 # d e f i n e M Y _ S _ I F C H R S _ I F C H R / * c h a r a c t e r s p e c i a l * / 00046 00047 # d e f i n e M Y _ S _ I F B L K S _ I F B L K / * b l o c k s p e c i a l * / 00048 00049 # d e f i n e M Y _ S _ I F R E G S _ I F R E G / * r e g u l a r * / 00050 00051 # d e f i n e M Y _ S _ I F I F O S _ I F I F O / * f i f o * / 00052 00053 # d e f i n e M Y _ S _ I S U I D S _ I S U I D / * s e t u s e r i d o n e x e c u t i o n * / 00054 00055 # d e f i n e M Y _ S _ I S G I D S _ I S G I D / * s e t g r o u p i d o n e x e c u t i o n * / 00056 00057 # d e f i n e M Y _ S _ I S V T X S _ I S V T X / * s a v e s w a p p e d t e x t e v e n a f t e r u s e * / 00058 00059 # d e f i n e M Y _ S _ I R E A D S _ I R E A D / * r e a d p e r m i s s i o n , o w n e r * / 00060 00061 # d e f i n e M Y _ S _ I W R I T E S _ I W R I T E / * w r i t e p e r m i s s i o n , o w n e r * / 00062 00063 # d e f i n e M Y _ S _ I E X E C S _ I E X E C / * e x e c u t e / s e a r c h p e r m i s s i o n , o w n e r * / 00064 00065 # d e f i n e M Y _ S _ I S D I R ( m ) ( ( ( m ) & M Y _ S _ I F M T ) = = M Y _ S _ I F D I R ) 00066 00067 # d e f i n e M Y _ S _ I S C H R ( m ) ( ( ( m ) & M Y _ S _ I F M T ) = = M Y _ S _ I F C H R ) 00068 00069 # d e f i n e M Y _ S _ I S B L K ( m ) ( ( ( m ) & M Y _ S _ I F M T ) = = M Y _ S _ I F B L K ) 00070 00071 # d e f i n e M Y _ S _ I S R E G ( m ) ( ( ( m ) & M Y _ S _ I F M T ) = = M Y _ S _ I F R E G ) 00072 00073 # d e f i n e M Y _ S _ I S F I F O ( m ) ( ( ( m ) & M Y _ S _ I F M T ) = = M Y _ S _ I F I F O ) 00074 00075 # d e f i n e M Y _ D O N T _ S O R T 5 1 2 / * m y _ l i b ; D o n ' t s o r t f i l e s * / 00076 00077 # d e f i n e M Y _ W A N T _ S T A T 1 0 2 4 / * m y _ l i b ; s t a t f i l e s * / 00078 00079 / * t y p e d e f s f o r m y _ d i r & m y _ s t a t * / 00080 00081 # i f d e f U S E _ M Y _ S T A T _ S T R U C T 00082 00083 t y p e d e f s t r u c t m y _ s t a t 00084 00085 { 00086 00087 d e v _ t s t _ d e v ; / * m a j o r & m i n o r d e v i c e n u m b e r s * / 00088 00089 i n o _ t s t _ i n o ; / * i n o d e n u m b e r * / 00090 00091 u s h o r t s t _ m o d e ; / * f i l e p e r m i s s o n s ( & s u i d s g i d . . b i t s ) * / 00092 00093 s h o r t s t _ n l i n k ; / * n u m b e r o f l i n k s t o f i l e * / 00094 00095 u s h o r t s t _ u i d ; / * u s e r i d * / 00096 00097 u s h o r t s t _ g i d ; / * g r o u p i d * / 00098 00099 d e v _ t s t _ r d e v ; / * m o r e m a j o r & m i n o r d e v i c e n u m b e r s ( ? ? ? ) * / 00100 00101 o f f _ t s t _ s i z e ; / * s i z e o f f i l e * / 00102 00103 t i m e _ t s t _ a t i m e ; / * t i m e f o r l a s t r e a d * / 00104 00105 t i m e _ t s t _ m t i m e ; / * t i m e f o r l a s t c o n t e n s m o d i f y * / 00106 00107 t i m e _ t s t _ c t i m e ; / * t i m e f o r l a s t i n o d e o r c o n t e n t s m o d i f y * / 00108 00109 } M Y _ S T A T ; 00110 00111 # e l s e 00112 00113 # i f ( _ M S C _ V E R ) 00114 00115 # d e f i n e M Y _ S T A T s t r u c t _ s t a t i 6 4 / * 6 4 b i t f i l e s i z e * / 00116 00117 # e l s e 00118 00119 # d e f i n e M Y _ S T A T s t r u c t s t a t / * O r g i n a l s t r u c t h a v e w h a t w e n e e d * / 00120 00121 # e n d i f 00122 00123 # e n d i f / * U S E _ M Y _ S T A T _ S T R U C T * / 00124 00125 / * S t r u c t d e s c r i b i n g o n e f i l e r e t u r n e d f r o m m y _ d i r * / 00126 00127 t y p e d e f s t r u c t f i l e i n f o 00128 00129 { 00130 00131 c h a r * n a m e ; 00132 00133 M Y _ S T A T * m y s t a t ; 00134 00135 } F I L E I N F O ; 00136 00137 t y p e d e f s t r u c t s t _ m y _ d i r / * S t r u c t r e t u r n e d f r o m m y _ d i r * / 00138 00139 { 00140 00141 / * 00142 00143 T h e s e m e m b e r s a r e j u s t c o p i e s o f p a r t s o f D Y N A M I C _ A R R A Y s t r u c t u r e , 00144 00145 w h i c h i s a l l o c a t e d r i g h t a f t e r t h e e n d o f M Y _ D I R s t r u c t u r e ( M E M _ R O O T 00146 00147 f o r s t o r i n g n a m e s i s a l s o r e s i d e s t h e r e ) . W e ' v e l e f t t h e m h e r e b e c a u s e 00148 00149 w e d o n ' t w a n t t o c h a n g e c o d e t h a t u s e s m y _ d i r . 00150 00151 * / 00152 00153 s t r u c t f i l e i n f o * d i r _ e n t r y ; 00154 00155 u i n t n u m b e r _ o f f _ f i l e s ; 00156 00157 } M Y _ D I R ; 00158 00159 e x t e r n M Y _ D I R * m y _ d i r ( c o n s t c h a r * p a t h , m y f M y F l a g s ) ; 00160 00161 e x t e r n v o i d m y _ d i r e n d ( M Y _ D I R * b u f f e r ) ; 00162 00163 e x t e r n M Y _ S T A T * m y _ s t a t ( c o n s t c h a r * p a t h , M Y _ S T A T * s t a t _ a r e a , m y f m y _ f l a g s ) ; 00164 00165 e x t e r n i n t m y _ f s t a t ( i n t f i l e n r , M Y _ S T A T * s t a t _ a r e a , m y f M y F l a g s ) ; 00166 00167 # e n d i f / * M Y _ D I R _ H * / 00168 00169 # i f d e f _ _ c p l u s p l u s 00170 00171 } 00172 00173 # e n d i f 00174 00175 # e n d i f 00176 00177