#include <stdio.h>
#include <string.h>
#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_memmove (void *dest, size_t size1, const void *src, size_t size2) |
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) |
dkutil::dkstrcpy_amap2 | |
DKC_EXTERN int WINAPI | dkc_strcat (char *dest, size_t destsize, size_t destlen, const char *src, size_t srclen) |
dkutil::dkstrcat | |
DKC_EXTERN int WINAPI | dkc_strcat2 (char *dest, size_t destsize, const char *src) |
dkutil::dkstrcat2 | |
DKC_EXTERN int WINAPI | dkc_strcat_amap (char *dest, size_t destsize, size_t destlen, const char *src, size_t srclen) |
dkutil::dkstrcat_amap | |
DKC_EXTERN int WINAPI | dkc_strcat_amap2 (char *dest, size_t destsize, const char *src) |
dkutil::dkstrcat_amap2 | |
DKC_EXTERN int WINAPI | dkc_memcmp (const void *buf1, size_t buf1PermitSize, const void *buf2, size_t count) |
dkutil::dkmemcmp | |
DKC_EXTERN int WINAPI | dkc_strcmp (const char *b1, size_t b1size, const char *b2, size_t b2size) |
DKC_EXTERN size_t | dkc_beam (int num) |
DKC_EXTERN void | dkc_memswap (void *va, void *vb, size_t size) |
dkutil::memswap | |
DKC_EXTERN void | dkc_memreverse (void *array, size_t num, size_t size) |
dkutil::memreverse | |
DKC_EXTERN void | dkc_memrrotate (void *array, size_t shift, size_t num, size_t size) |
dkutil::memrrotate | |
DKC_EXTERN void | dkc_memlrotate (void *array, size_t shift, size_t num, size_t size) |
dkutil::memlrotate | |
DKC_EXTERN int | dkc_stream_swap (char *memory, size_t size, size_t point) |
一つのメモリ領域をpointを基準に入れ替える。 |
dkcStdio.h で定義されています。
|
dkcStdio.c の 120 行で定義されています。
00120 { 00121 size_t b = 0 ; 00122 int i=0; 00123 for(i = 10 ; num >= i ; i *= 10 ){ 00124 b ++ ; 00125 } 00126 return b; 00127 } |
|
dkutil::dkmemcmp
dkcStdio.c の 92 行で定義されています。 参照先 edk_FAILED, edk_LogicError, と edk_SUCCEEDED. 参照元 dkcFileWithSignatureCheckCheat().
00094 { 00095 if(buf1PermitSize < count)return edk_LogicError; 00096 if(0 !=memcmp(buf1,buf2,count))return edk_FAILED; 00097 return edk_SUCCEEDED; 00098 } |
|
dkcStdio.c の 15 行で定義されています。 参照先 edk_FAILED, と edk_SUCCEEDED. 参照元 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 } |
|
dkutil::memlrotate
dkcStdio.c の 212 行で定義されています。 参照先 dkc_memreverse().
00213 { 00214 dkc_memreverse( array, shift, size ); // 012345678 -> 210345678 00215 dkc_memreverse( (char *)array+(size*shift), num-shift, size ); // 210345678 -> 210876543 00216 dkc_memreverse( array, num, size ); // 210876543 -> 345678012 00217 }//memlrotate |
|
dkcStdio.c の 21 行で定義されています。 参照先 edk_FAILED, と edk_SUCCEEDED.
00022 { 00023 if(size1 < size2){ 00024 return edk_FAILED; 00025 } 00026 memmove(dest,src,size2); 00027 return edk_SUCCEEDED; 00028 } |
|
dkutil::memreverse
dkcStdio.c の 188 行で定義されています。 参照先 dkc_memswap(). 参照元 dkc_memlrotate(), と dkc_memrrotate().
00189 { 00190 char *l; 00191 char *r; 00192 00193 l = (char *)array; 00194 r = (char *)array + ((num-1) * size); 00195 for( ; l < r; l = l+size, r = r-size ) 00196 dkc_memswap( l, r, size ); 00197 }//memreverse |
|
dkutil::memrrotate
dkcStdio.c の 202 行で定義されています。 参照先 dkc_memreverse().
00203 { 00204 dkc_memreverse( array, num, size ); // 012345678 -> 876543210 00205 dkc_memreverse( array, shift, size ); // 876543210 -> 678543210 00206 dkc_memreverse( (char *)array+(size*shift), num-shift, size ); // 678543210 -> 678012345 00207 }//memrrotate |
|
dkutil::memswap
dkcStdio.c の 171 行で定義されています。 参照元 dkc_memreverse().
00172 { 00173 char *ca; 00174 char *cb; 00175 char cTmp; 00176 for( ca = (char *)va, cb = (char *)vb; size > 0; size--, ca++, cb++ ) 00177 { 00178 cTmp = *ca; 00179 *ca = *cb; 00180 *cb = cTmp; 00181 } 00182 }//memswap |
|
dkutil::dkstrcat
dkcStdio.c の 59 行で定義されています。 参照先 edk_FAILED, と edk_SUCCEEDED. 参照元 dkc_strcat2().
00061 { 00062 //destlen + srclen + NULL文字 00063 if(destsize < destlen + srclen + 1) return edk_FAILED; 00064 strncat(dest,src,srclen); 00065 return edk_SUCCEEDED; 00066 } |
|
dkutil::dkstrcat2
dkcStdio.c の 68 行で定義されています。 参照先 dkc_strcat().
00068 { 00069 return dkc_strcat(dest,destsize,strlen(dest),src,strlen(src)); 00070 } |
|
dkutil::dkstrcat_amap
dkcStdio.c の 72 行で定義されています。 参照先 edk_Not_Satisfactory, と edk_SUCCEEDED. 参照元 dkc_strcat_amap2(), と dkcDirectoryConcatenate().
00074 { 00075 //destlen + srclen + NULL文字 00076 int result = edk_SUCCEEDED; 00077 size_t lsize = destlen + srclen + 1; 00078 if(destsize < lsize) 00079 {//オーバーしてたら・・・ 00080 srclen = lsize - destsize - 1; 00081 result = edk_Not_Satisfactory; 00082 } 00083 strncat(dest,src,srclen); 00084 //dest[destlen + srclen - 1] = '\0'; 00085 return result; 00086 } |
|
dkutil::dkstrcat_amap2
dkcStdio.c の 88 行で定義されています。 参照先 dkc_strcat_amap().
00088 { 00089 return dkc_strcat_amap(dest,destsize,strlen(dest),src,strlen(src)); 00090 } |
|
dkcStdio.c の 100 行で定義されています。 参照先 edk_FAILED, edk_LogicError, と edk_SUCCEEDED.
00101 { 00102 int result = edk_SUCCEEDED; 00103 size_t i = 0; 00104 //検索する文字列が多いとおかしいのでエラー 00105 if(b1size < b2size) return edk_LogicError; 00106 //if(b1size < b2size) return edk_LogicError; 00107 00108 //とりあえずマッチするか確かめる。 00109 for(i=0;i<b2size;i++) 00110 { 00111 if(b1[i] != b2[i]) 00112 { 00113 result = edk_FAILED; 00114 break; 00115 } 00116 } 00117 return result; 00118 } |
|
dkcStdio.c の 30 行で定義されています。 参照先 edk_FAILED, と edk_SUCCEEDED. 参照元 dkcFindFileGetFileName(), dkcGetCurrentDirectory(), dkcPathStringDevideBegin_Logic(), dkcPathStringDevideNext_Logic(), dkcPathStringGetDirectory(), dkcPathStringGetDrive(), dkcPathStringGetFileExtension(), dkcPathStringGetFileName(), dkcSHA1DigestStr(), dkcSHA256DigestStr(), dkcSHA384DigestStr(), と dkcSHA512DigestStr().
00030 { 00031 if(size1 <= srclen) return edk_FAILED; 00032 strncpy(dest,src,srclen); 00033 //if(dest[srclen] != '\0') return edk_FAILED; 00034 dest[srclen] = '\0'; 00035 return edk_SUCCEEDED; 00036 } |
|
dkcStdio.c の 39 行で定義されています。 参照先 edk_FAILED, edk_Not_Satisfactory, と edk_SUCCEEDED. 参照元 dkc_strcpy_amap2().
00039 { 00040 # ifndef NDEBUG 00041 if(!(0 == size1 && 0 == srclen)){ 00042 return edk_FAILED; 00043 } 00044 # endif 00045 if(size1 <= srclen){//ここは<=か!? 00046 strncpy(dest,src,size1); 00047 dest[size1 - 1] = '\0'; 00048 return edk_Not_Satisfactory; 00049 }else{ 00050 strncpy(dest,src,srclen); 00051 dest[srclen] = '\0'; 00052 return edk_SUCCEEDED; 00053 } 00054 } |
|
dkutil::dkstrcpy_amap2
dkcStdio.c の 55 行で定義されています。 参照先 dkc_strcpy_amap().
00055 { 00056 return dkc_strcpy_amap(dest,size1,src,strlen(src)); 00057 } |
|
一つのメモリ領域をpointを基準に入れ替える。
dkcStdio.c の 130 行で定義されています。 参照先 BOOL, edk_FAILED, edk_OutOfMemory, edk_SUCCEEDED, FALSE, と TRUE. 参照元 dkcStringErase(), と dkcStringInsert().
00131 { 00132 char *p; 00133 size_t big; 00134 size_t small__; 00135 BOOL isLeft = FALSE;//左の方がでかいとTRUE 00136 if(size <= 1){ 00137 return edk_FAILED;//スワップのしようが無い 00138 } 00139 00140 00141 if(size - point < point){ 00142 big = point;//left 00143 small__ = size - point; 00144 isLeft = TRUE; 00145 }else{ 00146 big = size - point;//right 00147 small__ = point; 00148 } 00149 00150 p = (char *)malloc(big); 00151 if(!p) return edk_OutOfMemory; 00152 00153 if(isLeft) 00154 { 00155 memcpy(p,memory,big); 00156 memcpy(memory,&memory[big],small__); 00157 memcpy(&memory[small__],p,big); 00158 }else{ 00159 memcpy(p,&memory[small__],big); 00160 memcpy(&memory[big],memory,small__); 00161 memcpy(memory,p,big); 00162 } 00163 00164 free(p); 00165 return edk_SUCCEEDED; 00166 } |