본문 바로가기
728x90

프로그래밍13

GIT branch 생성 및 사용법, merge GIT 사용 시, 종종 소스 수정이 있을 때마다, branch를 생성해서 사용하게 되는데, 자주 사용하지는 않다보니 명령어가 잘 기억나지 않는 경우가 있다. 그래서 간단하게 GIT branch 사용법을 정리해본다. GIT repository 위치 확인 우선, local에 trunk 소스를 받아놓은 위치에 가서 다음의 명령어를 실행하여, GIT repository 위치를 확인한다. $ git remote -v origin http://10.10.10.1:7443/test/test.git (fetch) origin http://10.10.10.1:7443/test/test.git (push) GIT 복제본 생성 branch를 생성하고자하는 최상위 디렉토리로 이동하여, trunk의 복제본을 local로 가져온.. 2023. 11. 14.
[gdb]coredumpctl 사용법 기존에는 linux core 파일 확인 방법으로 $ gdb binary명 dumpfile 과 같은 형태로 사용하였다. 하지만 최근에는 coredumpctl 데몬을 이용한 debugging이 보편화되어 가는 느낌이다. 통상적으로 개별적으로 dump file 관리하는 방법 대비 장점은 1. 실행의 편의성(바이너리 파일의 위치를 찾을 필요가 없음) 2. dump file 관리의 용이성(오래된 파일 자동 삭제 등) 등이 있다. 간단한 사용법은 다음과 같다. 1. core파일 리스트 정보확인 $ coredumpctl list 2. core 파일 세부 정보확인 $ coredumpctl info "pid" 3. core file을 별도 경로에 저장 $ coredumpctl dump "pid" -o "$PATH/fil.. 2022. 12. 15.
pthread_cond_wait Spurious wakeups 일반적으로 pthread_mutex_lock과 pthread_cond_wait는 다음과 같이 동작한다. ===================== pthread_mutex_lock if (condition) then pthread_cond_wait end if 조건에 따른 내용 처리 pthread_mutex_unlock ====================== 하지만, OS에 따라 pthread_cond_wait 혹은 pthread_cond_timedwait는 비정상적으로 깨어날 수 있다. 이것은 linux man page에도 Spurious wakeups라고 명시되어 있다. 이를 극복하기 위해 다음과 같이 condition check의 if 문을 while문으로 변경하면 된다. ===============.. 2015. 6. 24.
setsockopt - IP_MULTICAST_TTL TTL은 Time To Live의 약자로 multicast 데이터의 라우터 통과 범위를 설정하는 옵션이다. setsockopt 함수를 통해서 설정하게 되며, 설정 값에 따라 다음과 같다. ======================== 다 음 ================================ 0 : 호스트 내부로 제한 1: 동일 서브넷으로 제한, 라우터는 포워딩하지 않음 32 : 동일 사이트 64 : 동일 지역 255 : 무제한 ================================================================ 리눅스에서 사용법은 매우 간단하다. setsockopt에 IP_MUTLICAST_TTL 옵션을 주고, 옵션값으로 0/1/32/64/255 중 하나의 값을 설정.. 2014. 6. 12.
bash에서 파일 include 시키기 (source 명령어) 쉘 스크립트를 짜다보면, 스크립트 양이 많아져서, 코드의 가독성이 떨어지는 경우가 꽤 생긴다. 여러 개의 쉘로 나누어서, 상위 쉘에서 하위 쉘 여러 개를 실행하는 식으로 작성하는 방법도 있지만, 일반 프로그래밍 언어와 마찬가지로 쉘에서도 include 할 수 있는 방법이 있다. 쉘에서는 source 명령어를 이용하면, 특정 파일의 변수 및 함수를 include 시킬 수 있다. main.sh에서 test_defs에 있는 fn_usage와 fn_echo를 호출해 보겠다. 코드 자체에 특이 사항은 없고, 일반 프로그래밍언어의 include와 다른 점은 test_defs에서 MAIN_VAR을 사용 가능하다는 것이다. 소스 코드 main.sh #!/bin/bash source test_defs # test_def.. 2013. 9. 11.
728x90