#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 }
|
1.3.6