본문 바로가기

misc.

libeio - example: cp #include #include #include #include #include static struct ev_loop* loop; static ev_idle repeat_watcher; static ev_async ready_watcher; static const char* src; static const char* dst; struct file_copy { int srcfd; int dstfd; int offset; char buffer[1024]; }; int srcfd; int dstfd; int offset; char buffer[1024]; static int copy(struct file_copy* data); void end_copy(struct file_copy* data) { free(.. 더보기
libev - example: stdin #include #include #include ev_io stdin_watcher; // callback for io static void io_cb(EV_P_ struct ev_io* w, int revents) { char buffer[1024]; int res; printf("io event - fd: %d, event: %d\n", w->fd, revents); if ((res = read(w->fd, buffer, sizeof(buffer))) > 0) { printf("read %d bytes: %s", res, buffer); } else { perror("failed to read"); } } int main() { // use the default event loop struct ev_.. 더보기
libev - example: timer #include ev_timer timeout_watcher; // callback for timeout static void timeout_cb(EV_P_ struct ev_timer* w, int revents) { puts("timeout"); } int main() { // use the default event loop struct ev_loop* loop = ev_default_loop(0); // initialize an timer watcher // the timeout event will occur after 1sec, and repeat every 3sec. ev_timer_init(&timeout_watcher, timeout_cb, 1, 3); ev_timer_start(loop, .. 더보기
ANATOMY OF A WATCHER ANATOMY OF A WATCHER A watcher is a structure that you create and register to record your interest in some event. For instance, if you want to wait for STDIN to become readable, you would create an ev_io watcher for that. static void my_cb (struct ev_loop *loop, struct ev_io *w, int revents) { ev_io_stop (w); ev_break (loop, EVUNLOOP_ALL); } struct ev_loop *loop = ev_default_loop (0); struct ev_.. 더보기
libev - some functions controlling the event loop Functions Controlling the Event Loop An event loop is described by a struct ev_loop*.The library knows two types of such loop, the default loop, and dynamically created loops. struct ev_loop *ev_default_loop(unsigned int flags)This will initialize the default event loop if it hasn't been initialized yet and return it.If the default loop could not be initialized, return false.If it already was in.. 더보기
libev, libeio Documentationlibev: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.podlibeio: http://pod.tst.eu/http://cvs.schmorp.de/libeio/eio.pod What is libev?libev is a full-featured and high-performance event loop that is loosely modelled after libevent.benchmark: http://libev.schmorp.de/bench.html What is libeio?libeio is a library that provides truly asynchronous POSIX I/O. 더보기
vimrc 설정 set nocompatible " 오리지날 VI와 호환하지 않음 set autoindent " 자동 들여쓰기 set cindent " C 프로그래밍용 자동 들여쓰기 set smartindent " 스마트한 들여쓰기 set wrap set nowrapscan " 검색할 때 문서의 끝에서 처음으로 안돌아감 set nobackup " 백업 파일을 안만듬 set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸) 표시 set shiftwidth=4 " 자동 들여쓰기 4칸 set number " 행번호 표시, set nu 도 가능 set fencs=ucs-bom,utf-8,euc-kr.latin1 " 한글 파일은 euc-kr로, 유니코드는 유니코드로 set fileencoding=utf-8 " 파일저장인코.. 더보기
gentoo install 참고 http://gentooboy.tistory.com/156 http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml 더보기
LaTeX 그래프 그리기 http://www.texample.net/ 과제를 하던중 그래프를 그려야 하는 문제가 있어서 여기저기 찾아보다가 비교적 금방 "tikz" 라는 것을 발견했다. 한 시간 정도 공부하고 써보니 나름 괜찮은것 같다. \usepackage{tikz} \usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit} ... \begin{tikzpicture} \tikzstyle{Vertex} = [circle, draw, minimum size=6mm, inner sep=0pt] \node (r) at (0,1) [Vertex, fill=white][label=above:$r$] {$\infty$}; \node (s) at (1,1) [Ve.. 더보기
Notepad++ MikTeX 연동하기 우선 필요한 설치파일들을 다운받아야 한다. MikTex(http://miktex.org/) Notepad++(http://notepad-plus.sourceforge.net/uk/site.htm) 설치 경로는 아래와 같다 MikTex "C:\Program Files\MiKTeX 2.8" Notepad++ " 설치가 다 되었으면 "D:\XeTeX.bat" 라는 이름으로 아래와 같이 배치파일을 만든다. (XeTeX을 쓸거라..) @echo off %~d1 cd %~dp1 "C:\Program Files\MiKTeX 2.8\miktex\bin\texify.exe" --pdf --engine=xetex --tex-option=-synctex=1 "%1" %~dp1%~n1.pdf 위 배치파일은 .tex 파일을 전.. 더보기