したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

1118774さん:2008/12/17(水) 23:42:35 ID:CENbthlg0

int main(int argc, char **argv){
if(argc < 4){
std::cerr << "引数が少ないみたいです。" << std::endl;
std::cerr << "コマンド S D T" << std::endl;
return -1;
}
HANDLE hSrc = CreateFileA(argv[1], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
HANDLE hDes = CreateFileA(argv[2], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hSrc != INVALID_HANDLE_VALUE && hDes != INVALID_HANDLE_VALUE){
LARGE_INTEGER srcSize, desSize;
if(GetFileSizeEx(hSrc, &srcSize) && GetFileSizeEx(hDes, &desSize)){
std::cout << "FROM:" << srcSize.QuadPart << "bytes" << std::endl;
std::cout << " TO :" << desSize.QuadPart << "bytes" << std::endl;

//でかすぎるのはここで一応切っておく。これより小さくても本当はやめるべきだが。
if(!srcSize.HighPart && !desSize.HighPart){
HANDLE hSrcMap = CreateFileMappingA(hSrc, NULL, PAGE_READONLY, 0, 0, NULL);
HANDLE hDesMap = CreateFileMappingA(hDes, NULL, PAGE_READONLY, 0, 0, NULL);
if(hSrcMap && hDesMap){
void *pSrc = MapViewOfFile(hSrcMap, FILE_MAP_READ, 0, 0, 0);
void *pDes = MapViewOfFile(hDesMap, FILE_MAP_READ, 0, 0, 0);
if(pSrc && pDes){
Unko(pSrc, pDes, srcSize.LowPart, desSize.LowPart);
}
if(pSrc)
UnmapViewOfFile(pSrc);
if(pDes)
UnmapViewOfFile(pDes);
}
if(hSrcMap)
CloseHandle(hSrcMap);
if(hDesMap)
CloseHandle(hDesMap);
}
}
}
if(hSrc != INVALID_HANDLE_VALUE)
CloseHandle(hSrc);
if(hDes != INVALID_HANDLE_VALUE)
CloseHandle(hDes);
}


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板