https://code.google.com/p/semicomplete/source/browse/codesamples/exponential-backoff.c아래는 exponential backoff관련 코드이다.#include #include void exponential_backoff(useconds_t *current, useconds_t maxwait) { usleep(*current); *current *= 2; if (*current >= maxwait) { *current = maxwait; } } /* void exponential_backoff(useconds_t *, useconds_t) */ int main() { useconds_t maxwait = 5000000; /* 5 second..
http://austingroupbugs.net/view.php?id=551 #include #include #include #include #include struct element { /* Pointers to these are stored in the tree. */ int count; char string[]; }; void *root = NULL; /* This points to the root. */ int main(void) { char str[_POSIX2_LINE_MAX+1]; int length = 0; struct element *elementptr; void *node; void print_node(const void *, VISIT, int); int node_compare(con..
https://code.google.com/p/semicomplete/source/browse/codesamples/tsearch-example.c #include #include #include #include #include typedef struct foo { const char *name; int value; } foo_t; int cmp(const void *a, const void *b) { foo_t *fa, *fb; fa = (foo_t*)a; fb = (foo_t*)b; return strcmp(fa->name, fb->name); } void walker(const void *node, const VISIT which, const int depth) { foo_t *f; f = *(fo..
http://reality.sgiweb.org/davea/tsearch.c/* Copyright David Anderson 2010. This is free software. Permission hereby granted for anyone to copy or use this code for any purpose without restriction. Attribution may be given or may not, it is your choice. September 8, 2011: The tdelete example code was wrong in that it did not clean up entirely. So was the tsearch example code. Both are now fixed (..
아래는 leveldb윈도우 포팅인데, C++11에서 제공하는 "variadic templates"기능을 가진 컴파일러에서만 전체 빌드가 가능하다. 물론, 단계 5까지는 이하 버전에서도 가능하다. On WindowsPrerequisitesMsysMingw - I got mine from http://www.nuwen.netStepsGet LevelDB from https://github.com/ripple/leveldbOpen msys and navigate to where you have the directoryAdd the path to ming binaries to the end of the PATH variable. For exampleset PATH=$PATH:/c/Mingw/bin/export ..
뭔문 및 참조 : https://github.com/jbandela/leveldb_cross_compilerhttp://www.codeproject.com/Articles/569146/LevelDB-DLL-for-Windows-A-New-Approach-to-Exportin LevelDB는 구글에서 개발한 key/value 저장소이다. 이것을 윈도우에서 빌드하는 것은 힘든 일이다. 이글을 쓰는 시점에서 http://code.google.com/p/leveldb/source/browse/WINDOWS?name=windows 는 가용한 글이 아님을 미리 밝혀둔다.이 쓰레드에서 https://groups.google.com/forum/#!topic/leveldb/VuECZMnsob4 방안을 제시하지만, 역시 ..
윈도우 프로그래밍을 하다 보면, 가끔 혼동이 오는 부분이 있는데, Visual Basic 스타일의 string과 C 언어 스타일 string의 변환이 바로 그것이다. 사실 이것은 어렵다기 보다는 상세히 기억하기가 어려운 경우라고 할 수 있다. C string은 NULL문자로 끝나는 문자열이다. Visual Basic string은 문자열의 시작부에 문자열의 길이 값을 가지고 있다. 그래서, VB sting은 그 문자열의 길이를 알고 있다. 게다가, 모든 VB string은 Unicode(16bits)이다. String TypesBSTR/C 스트링 변환은 다음과 같은 경우에 필요하다.C/C++로 COM 프로그래밍을 하는 경우다중 언어 프로그래밍을 하는 경우, C++ DLL을 Visual Basic응용에서 ..
Sourcecode injme.cpp#include "injme.h"#include #include #include #include #include using namespace std;int s_FrameNumber = 0; HRESULT D3DX10CreateDevice_Hook ( IDXGIAdapter *pAdapter, D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, ID3D10Device **ppDevice){ DXGI_SWAP_CHAIN_DESC swapChainDesc; ZeroMemory(&swapChainDesc, sizeof(swapChainDesc)); swapChainDesc.BufferCount = 2; swapChainD..
http://resources.infosecinstitute.com/api-hooking-detours/API Hooking with Microsoft DetoursIntroductionMicrosoft Detours is a library which we can use to build our own DLL that serves as an API monitor when analyzing the results. The best thing about it is that it doesn’t require other frameworks as a dependency. The downside is that only x86 support is available for free; if we want to get x64..
Java는 가상머신으로써, 범용 운영체제 위에서 동작하는 형태가 가장 많다. 자바는 가상머신이기 때문에 CPU, Memory 등의 자원과 디스크, 파일, 네트워크 및 각종 IO장치에 대한 접근이 필요할 경우 운영체제를 경유하도록 만들어 지는게 일반적이다. 즉, 운영체제에서 제공하는 시스템호출(System Call)에 래퍼(Wrapper)를 만들어, 자바표준(JSR xxx시리즈)을 구현하는형태이다. (실제 일은 운영체제가 다~ 한다는 얘기다)이렇게, 운영체제(운영체제가 하드웨어를 제어하므로)에 대한 저수준 제어 로직을 만들어 상위수준의 인터페이스(API) 만들어 이뤄진 것이 자바의 본체이다. 자바는 이러한 것들을 구현하기 위해 운영체제/저수준 인터페이스(네이티브; native)를 제공하는데, 이 표준 이름..