#include "dkcOSIndependent.h"
dkcStdio.hのインクルード依存関係図
このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。
関数 | |
DKC_EXTERN int WINAPI | dkc_memcpy (void *dest, size_t size1, const void *src, size_t size2) |
DKC_EXTERN int WINAPI | dkc_memcpy_zc (void *dest, size_t size1, const void *src, size_t size2) |
zero checked memcpy | |
DKC_EXTERN int WINAPI | dkc_memmove (void *dest, size_t size1, const void *src, size_t size2) |
DKC_EXTERN int WINAPI | dkc_memcmp (const void *buf1, size_t buf1PermitSize, const void *buf2, size_t count) |
DKC_EXTERN int WINAPI | dkc_strcpy (char *dest, size_t size1, const char *src, size_t srclen) |
DKC_EXTERN int WINAPI | dkc_strcpy_amap (char *dest, size_t size1, const char *src, size_t srclen) |
DKC_EXTERN int WINAPI | dkc_strcpy_amap2 (char *dest, size_t size1, const char *src) |
DKC_EXTERN int WINAPI | dkc_strcat (char *dest, size_t destsize, size_t destlen, const char *src, size_t srclen) |
DKC_EXTERN int WINAPI | dkc_strcat2 (char *dest, size_t destsize, const char *src) |
DKC_EXTERN int WINAPI | dkc_strcat_amap (char *dest, size_t destsize, size_t destlen, const char *src, size_t srclen) |
DKC_EXTERN int WINAPI | dkc_strcat_amap2 (char *dest, size_t destsize, const char *src) |
DKC_EXTERN int WINAPI | dkc_strcmp (const char *b1, size_t b1size, const char *b2, size_t b2size) |
DKC_EXTERN int WINAPI | dkc_wcscat2 (wchar_t *dest, size_t destsize, const wchar_t *src) |
destsizeはバイト単位・・・ | |
DKC_EXTERN size_t | dkc_beam (int num) |
DKC_EXTERN void | dkc_memswap (void *va, void *vb, size_t size) |
va から size バイトの内容と、vb から size バイトの内容を交換する。 | |
DKC_EXTERN void | dkc_memreverse (void *array, size_t num, size_t size) |
大きさ size の要素 num 個からなる配列 array の要素を 逆順に並べ替える。 | |
DKC_EXTERN void | dkc_memrrotate (void *array, size_t shift, size_t num, size_t size) |
大きさ size の要素 num 個からなる配列 array の要素を 右方向に要素 shift 個分だけ回転移動する。 | |
DKC_EXTERN void | dkc_memlrotate (void *array, size_t shift, size_t num, size_t size) |
大きさ size の要素 num 個からなる配列 array の要素を 左方向に要素 shift 個分だけ回転移動する。 | |
DKC_EXTERN int | dkc_stream_swap (char *memory, size_t size, size_t point) |
一つのメモリ領域をpointを基準に入れ替える。 |
dkcStdio.h で定義されています。
|
dkcStdio.c の 153 行で定義されています。 00153 { 00154 size_t b = 0 ; 00155 int i=0; 00156 for(i = 10 ; num >= i ; i *= 10 ){ 00157 b ++ ; 00158 } 00159 return b; 00160 }
|
|
dkcStdio.c の 99 行で定義されています。 参照元 dkcFileBinaryCompare(), と dkcFileWithSignatureCheckCheat(). 00101 { 00102 if(buf1PermitSize < count)return edk_LogicError; 00103 if(0 !=memcmp(buf1,buf2,count))return edk_FAILED; 00104 return edk_SUCCEEDED; 00105 }
|
|
dkcStdio.c の 15 行で定義されています。 参照元 dkc_memcpy_zc(), dkcAllocCircularMemoryStreamCopy(), dkcBufferGet(), dkcBufferGetOffset(), dkcBufferSet(), dkcBufferSetOffset(), dkcGetSingleListBuffer(), dkcMemoryStreamLoadFromMemory(), dkcMemoryStreamRead(), dkcMemoryStreamWrite(), dkcMemoryStreamWriteToMemory(), dkcNewSingleList(), dkcSingleListGetBuffer(), dkcSingleListSetBuffer(), と dkcStringGetBuffer(). 00015 { 00016 if(size1 < size2) return edk_FAILED; 00017 memcpy(dest,src,size2); 00018 return edk_SUCCEEDED; 00019 }
|
|
zero checked memcpy
dkcStdio.c の 21 行で定義されています。 参照先 dkc_memcpy(), と NULL. 参照元 dkc2TreeGetBuffer(), と dkc2TreeSetBuffer(). 00021 { 00022 if(size1 == 0 || size2 == 0) return edk_FAILED; 00023 if(NULL==dest || NULL==src) return edk_FAILED; 00024 return dkc_memcpy(dest,size1,src,size2); 00025 }
|
|
大きさ size の要素 num 個からなる配列 array の要素を 左方向に要素 shift 個分だけ回転移動する。
dkcStdio.c の 245 行で定義されています。 参照先 dkc_memreverse(). 00246 { 00247 dkc_memreverse( array, shift, size ); // 012345678 -> 210345678 00248 dkc_memreverse( (char *)array+(size*shift), num-shift, size ); // 210345678 -> 210876543 00249 dkc_memreverse( array, num, size ); // 210876543 -> 345678012 00250 }//memlrotate
|
|
dkcStdio.c の 28 行で定義されています。 00029 { 00030 if(size1 < size2){ 00031 return edk_FAILED; 00032 } 00033 memmove(dest,src,size2); 00034 return edk_SUCCEEDED; 00035 }
|
|
大きさ size の要素 num 個からなる配列 array の要素を 逆順に並べ替える。
dkcStdio.c の 221 行で定義されています。 参照先 dkc_memswap(). 参照元 dkc_memlrotate(), と dkc_memrrotate(). 00222 { 00223 char *l; 00224 char *r; 00225 00226 l = (char *)array; 00227 r = (char *)array + ((num-1) * size); 00228 for( ; l < r; l = l+size, r = r-size ) 00229 dkc_memswap( l, r, size ); 00230 }//memreverse
|
|
大きさ size の要素 num 個からなる配列 array の要素を 右方向に要素 shift 個分だけ回転移動する。
dkcStdio.c の 235 行で定義されています。 参照先 dkc_memreverse(). 00236 { 00237 dkc_memreverse( array, num, size ); // 012345678 -> 876543210 00238 dkc_memreverse( array, shift, size ); // 876543210 -> 678543210 00239 dkc_memreverse( (char *)array+(size*shift), num-shift, size ); // 678543210 -> 678012345 00240 }//memrrotate
|
|
va から size バイトの内容と、vb から size バイトの内容を交換する。
dkcStdio.c の 204 行で定義されています。 参照元 dkc_memreverse(). 00205 { 00206 char *ca; 00207 char *cb; 00208 char cTmp; 00209 for( ca = (char *)va, cb = (char *)vb; size > 0; size--, ca++, cb++ ) 00210 { 00211 cTmp = *ca; 00212 *ca = *cb; 00213 *cb = cTmp; 00214 } 00215 }//memswap
|
|
dkcStdio.c の 66 行で定義されています。 参照元 dkc_strcat2(). 00068 { 00069 //destlen + srclen + NULL文字 00070 if(destsize < destlen + srclen + 1) return edk_FAILED; 00071 strncat(dest,src,srclen); 00072 return edk_SUCCEEDED; 00073 }
|
|
dkcStdio.c の 75 行で定義されています。 参照先 dkc_strcat(). 00075 { 00076 return dkc_strcat(dest,destsize,strlen(dest),src,strlen(src)); 00077 }
|
|
dkcStdio.c の 79 行で定義されています。 参照元 dkc_strcat_amap2(), と dkcDirectoryConcatenate(). 00081 { 00082 //destlen + srclen + NULL文字 00083 int result = edk_SUCCEEDED; 00084 size_t lsize = destlen + srclen + 1; 00085 if(destsize < lsize) 00086 {//オーバーしてたら・・・ 00087 srclen = lsize - destsize - 1; 00088 result = edk_Not_Satisfactory; 00089 } 00090 strncat(dest,src,srclen); 00091 //dest[destlen + srclen - 1] = '\0'; 00092 return result; 00093 }
|
|
dkcStdio.c の 95 行で定義されています。 参照先 dkc_strcat_amap(). 00095 { 00096 return dkc_strcat_amap(dest,destsize,strlen(dest),src,strlen(src)); 00097 }
|
|
dkcStdio.c の 107 行で定義されています。 00108 { 00109 int result = edk_SUCCEEDED; 00110 size_t i = 0; 00111 //検索する文字列が多いとおかしいのでエラー 00112 if(b1size < b2size) return edk_LogicError; 00113 //if(b1size < b2size) return edk_LogicError; 00114 00115 //とりあえずマッチするか確かめる。 00116 for(i=0;i<b2size;i++) 00117 { 00118 if(b1[i] != b2[i]) 00119 { 00120 result = edk_FAILED; 00121 break; 00122 } 00123 } 00124 return result; 00125 }
|
|
dkcStdio.c の 37 行で定義されています。 参照元 dkcFindFileGetFileName(), dkcGetCurrentDirectory(), dkcPathStringDevideBegin_Logic(), dkcPathStringDevideNext_Logic(), dkcPathStringGetDirectory(), dkcPathStringGetDrive(), dkcPathStringGetFileExtension(), dkcPathStringGetFileName(), dkcSHA1DigestStr(), dkcSHA256DigestStr(), dkcSHA384DigestStr(), と dkcSHA512DigestStr(). 00037 { 00038 if(size1 <= srclen) return edk_FAILED; 00039 strncpy(dest,src,srclen); 00040 //if(dest[srclen] != '\0') return edk_FAILED; 00041 dest[srclen] = '\0'; 00042 return edk_SUCCEEDED; 00043 }
|
|
dkcStdio.c の 46 行で定義されています。 参照元 dkc_strcpy_amap2(). 00046 { 00047 # ifndef NDEBUG 00048 if(!(0 == size1 && 0 == srclen)){ 00049 return edk_FAILED; 00050 } 00051 # endif 00052 if(size1 <= srclen){//ここは<=か!? 00053 strncpy(dest,src,size1); 00054 dest[size1 - 1] = '\0'; 00055 return edk_Not_Satisfactory; 00056 }else{ 00057 strncpy(dest,src,srclen); 00058 dest[srclen] = '\0'; 00059 return edk_SUCCEEDED; 00060 } 00061 }
|
|
dkcStdio.c の 62 行で定義されています。 参照先 dkc_strcpy_amap(). 00062 { 00063 return dkc_strcpy_amap(dest,size1,src,strlen(src)); 00064 }
|
|
一つのメモリ領域をpointを基準に入れ替える。
dkcStdio.c の 163 行で定義されています。 参照元 dkcStringErase(), と dkcStringInsert(). 00164 { 00165 char *p; 00166 size_t big; 00167 size_t small__; 00168 BOOL isLeft = FALSE;//左の方がでかいとTRUE 00169 if(size <= 1){ 00170 return edk_FAILED;//スワップのしようが無い 00171 } 00172 00173 00174 if(size - point < point){ 00175 big = point;//left 00176 small__ = size - point; 00177 isLeft = TRUE; 00178 }else{ 00179 big = size - point;//right 00180 small__ = point; 00181 } 00182 00183 p = (char *)malloc(big); 00184 if(!p) return edk_OutOfMemory; 00185 00186 if(isLeft) 00187 { 00188 memcpy(p,memory,big); 00189 memcpy(memory,&memory[big],small__); 00190 memcpy(&memory[small__],p,big); 00191 }else{ 00192 memcpy(p,&memory[small__],big); 00193 memcpy(&memory[big],memory,small__); 00194 memcpy(memory,p,big); 00195 } 00196 00197 free(p); 00198 return edk_SUCCEEDED; 00199 }
|
|
destsizeはバイト単位・・・
dkcStdio.c の 141 行で定義されています。 00143 { 00144 size_t dlen = wcslen(dest); 00145 size_t slen = wcslen(src); 00146 00147 if(destsize / sizeof(wchar_t) < dlen + slen + 1) return edk_FAILED; 00148 00149 wcsncpy(&dest[dlen],src,slen); 00150 return edk_SUCCEEDED; 00151 }
|