#include "dkcStdio.h"dkcStdio.cのインクルード依存関係図

マクロ定義 | |
| #define | DKUTIL_C_STDIO_C |
関数 | |
| int WINAPI | dkc_memcpy (void *dest, size_t size1, const void *src, size_t size2) |
| int WINAPI | dkc_memcpy_zc (void *dest, size_t size1, const void *src, size_t size2) |
| zero checked memcpy | |
| int WINAPI | dkc_memmove (void *dest, size_t size1, const void *src, size_t size2) |
| int WINAPI | dkc_strcpy (char *dest, size_t size1, const char *src, size_t srclen) |
| int WINAPI | dkc_strcpy_amap (char *dest, size_t size1, const char *src, size_t srclen) |
| int WINAPI | dkc_strcpy_amap2 (char *dest, size_t size1, const char *src) |
| dkutil::dkstrcpy_amap2 | |
| int WINAPI | dkc_strcat (char *dest, size_t destsize, size_t destlen, const char *src, size_t srclen) |
| dkutil::dkstrcat | |
| int WINAPI | dkc_strcat2 (char *dest, size_t destsize, const char *src) |
| dkutil::dkstrcat2 | |
| int WINAPI | dkc_strcat_amap (char *dest, size_t destsize, size_t destlen, const char *src, size_t srclen) |
| dkutil::dkstrcat_amap | |
| int WINAPI | dkc_strcat_amap2 (char *dest, size_t destsize, const char *src) |
| dkutil::dkstrcat_amap2 | |
| int WINAPI | dkc_memcmp (const void *buf1, size_t buf1PermitSize, const void *buf2, size_t count) |
| dkutil::dkmemcmp | |
| int WINAPI | dkc_strcmp (const char *b1, size_t b1size, const char *b2, size_t b2size) |
| DKC_INLINE int WINAPI | dkc_wcscat2 (wchar_t *dest, size_t destsize, const wchar_t *src) |
| destsizeはバイト単位・・・ | |
| DKC_INLINE size_t | dkc_beam (int num) |
| 10進法での桁数を返す | |
| int | dkc_stream_swap (char *memory, size_t size, size_t point) |
| 一つのメモリ領域をpointを基準に入れ替える。 | |
| void | dkc_memswap (void *va, void *vb, size_t size) |
| dkutil::memswap | |
| void | dkc_memreverse (void *array, size_t num, size_t size) |
| dkutil::memreverse | |
| void | dkc_memrrotate (void *array, size_t shift, size_t num, size_t size) |
| dkutil::memrrotate | |
| void | dkc_memlrotate (void *array, size_t shift, size_t num, size_t size) |
| dkutil::memlrotate | |
|
|
dkcStdio.c の 10 行で定義されています。 |
|
|
10進法での桁数を返す
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 }
|
|
||||||||||||||||||||
|
dkutil::dkmemcmp
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(), dkcMemoryStreamRead(), dkcMemoryStreamWrite(), 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 }
|
|
||||||||||||||||||||
|
dkutil::memlrotate
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 }
|
|
||||||||||||||||
|
dkutil::memreverse
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
|
|
||||||||||||||||||||
|
dkutil::memrrotate
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
|
|
||||||||||||||||
|
dkutil::memswap
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
|
|
||||||||||||||||||||||||
|
dkutil::dkstrcat
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 }
|
|
||||||||||||||||
|
dkutil::dkstrcat2
dkcStdio.c の 75 行で定義されています。 参照先 dkc_strcat().
00075 {
00076 return dkc_strcat(dest,destsize,strlen(dest),src,strlen(src));
00077 }
|
|
||||||||||||||||||||||||
|
dkutil::dkstrcat_amap
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 }
|
|
||||||||||||||||
|
dkutil::dkstrcat_amap2
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 }
|
|
||||||||||||||||
|
dkutil::dkstrcpy_amap2
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 }
|
1.3.6