본문 바로가기

C++ pthread pool management library GitHUB -> https://github.com/woenho/pthread_pool GitHub - woenho/pthread_pool: 사용자 프로그램과 온전히 독립적으로 동작할 수 있는 완전체 모습의 pthre 사용자 프로그램과 온전히 독립적으로 동작할 수 있는 완전체 모습의 pthread pool 관리라이브러리를 추구했다 ExampleThreadPool.cpp 라는 예제 프로그램을 이용하여 라이브러리의 작동모습을 볼 수 있 github.com 주요기능: 지정된 수 만큼의 워크 쓰레드를 생성하도록 하는 API 제공 (실행할 외부함수를 인자로 받아야함) 명시적으로 쓰레드풀을 종료 할 수 있는 api를 제공 (큐 처리 후 종료 | 큐 버리고 종료) 프로세스의 쓰레드 요청 내역을 큐에 넣는 api를 제.. 더보기
GIT 복구, 복원 또는 되돌리는 작업 정리 흐미 ... 프로그램 소스파일 캐릭터셋 잘못 지정해서 commit & push 하는 바람에 복구하는라 애 먹었다. 비상발생시 처리는 잊은지 오래된 이야긴데.... 어쨌든 살리는 방법 시험해서 정리한 다음 로깅해 둔다. 기억력이 현저히 떨어져 가는 나를 포함해서 잘 모르시는 분이 보면 도움이 될꺼다. 혹시 잘 아시는 분 있으면 가르침을 바란다. 이거 하느라고도 애썼다 ... ---- 작업기록 그래프로 본것 --- 목표: 커밋 아이디가 5b9153f 인 녀석을 그 전인 0b062be 로 복원하려는 것이다 ----------------------- /* GIT 복원시험 */ ----------------------- 1. HEAD 변경이력 확인 { $ git reflog 5b9153f (HEAD -> mast.. 더보기
linux find 명령 예 find /var/spool/asterisk/monitor/ -iname “*wav” -type f -exec sh -c ‘ffmpeg -i {} -y -vn -aq 40 -ac 1 `echo {} | sed “s/.wav/.mp4/g”` && rm {}’ \; -name : 이름입력 -iname: 패턴 입력 -> -name과 비슷하지만 일치는 대소 문자를 구분하지 않습니다. 예를 들어 패턴 'fo *' 및 'F??' 파일 이름 'Foo ', 'FOO', 'foo ', 'fOo'등 -type : f ( regular file), d (directory) -exec : 다음 명령을 실행하라.... {} : find로 검색된 결과값 하나하나 \; : -exec 명령문의 종료로 앞글자 '}' 와 반드시 띄워 .. 더보기
sprintf() with '*' sprintf( "%.*s", txt.len, txt.s);'*'의 의미는 길이이다sprintf( "%.20s", txt.s); 라면 txt.s 문자열의 길이가 몇이던 최소 20바이트 길이를 printf 하는것이나 이 길이가 가변일 때는?그렇다 바로 '*'을 사용하는 것이다. 유용한 프로그램밍이 되길 바라며...오늘도 술퍼! 더보기
Asterisk CallFlow -. 301번전화(192.168.1.84) 교환기1(192.168.1.75) 교환기2(192.168.1.99) 901번전화(192.168.1.91) ============================================================================================== (오류를 수신하면 실패처리. 여기서는 성공흐름만 기술) (화살표는 위 각 피어의 연결순에에 따른 흐름 방향으로 한다) (#참조1) ---- 참고로 최초의 invite 전문을 기술한다 (SDP 구간의 IP, PORT, codec를 잘 살펴보길 바란다) { INVITE sip:901@192.168.1.75;user=phone SIP/2.0 Via: SIP/2.0/UDP 192.168.1.84:5.. 더보기
vscode sftp 다중설정 - 여러 개의 서버 연결 관리하기 sftp.json 파일에서 작성한 예제 ========================= { "name": "debugging with docker [simple test] ", "protocol": "sftp", "defaultProfile": "vbox", "profiles": { "dev2": { "host": "xx.xx.xx.xx", "port": 1234, "username": "test", "password": "call!@#", "remotePath": "/home/test", "uploadOnSave": false }, "vbox": { "host": "192.168.1.139", "remotePath": "/root/simpletest", "port": 22, "username": "roo.. 더보기
사진 보여주는 화면보호기 (키보드 조합으로 화면보호기 종료) 업무 중 자리를 비웠을 때 (점심시간 등...) 스크린세이버가 동작한다 나는 멀티모니터를 사용하는데 점심시간이 지나고 보면 모든 프로그램이 하나의 모니터에 몰려있다... (헐) 이유는 모니터 전원이 차단되면 윈도우는 모니터를 뺀것으로 판단하여 모든 프로그램 화면을 기본 모니터로 보낸다 모니터전원 차단 이유를 확인해 보니 세 가지 중 하나다 첫째: 모니터에서 절전기능이 활성화된 경우다 둘째: 컴퓨터에서 일정시간 컴퓨터를 사용하지 않으면 모니터 전원을 꺼버리는 절전기능이 동작해서이다 셋째: 키보드나 컴퓨터 본체의 절전 기능 버튼을 눌렀을 때이다 절전기능을 다 해제 시켰다. 내가 깨울 때 까지 동작하는 스크린 세이버를 만들었다 특징 : 화면보호기 깨울 때 특수한 키보드 조합만 누르면 바로 깨우는 것이다 키조합.. 더보기
Bootable USB (부팅USB)또는 Bootable Disk(부팅디스크) 만드는법(도스명령으로) 뭐 간단하다 대상 usb나 디스크를 포맷한 다음 윈도우 CD를 복사해주면 된다 단, 모든 시스템을 볼륨 단위로 복사해야하므로 아래의 명령을 사용한다 iso 파일을 F: 드라이브로 마운트 하고 USB는 G: 드라이브로 마운트 된 상황으로 설명한다 1. iso를 드라이브로 마운트 한다 2. cd boot 3. bootsect /nt60 g: 4. cd .. 5. xcopy f:\*.* g:\ /cherky f:\ -> 소스 볼륨 (윈도우 CD) g:\ -> 대상 볼륨 (USB, 혹은 대상 디스크) /c -> 오류를 무시합니다. /h -> 숨겨진 파일과 시스템 파일을 복사합니다 /e -> 모든 하위 디렉터리를 복사 합니다. /r -> 읽기 전용 파일을 복사 합니다. /k -> 파일을 복사하고 읽기 전용 특성을.. 더보기