프로그래밍 104

[Linux] dynamic library (dlopen, dlsym, dlclose, dlerror) 사용법

개요 dlopen의 경우 library를 run time에 Load하여 사용 하려고 할 때 사용 합니다. 헤더 #include dlopen 관련 함수 #include #라이브러리를 open 합니다. void *dlopen (const char *filename, int flag); #라이브러리 오픈 관련 에러는 표현 합니다. const char *dlerror(void); #so파일의 symbol 정보를 가져옵니다. #반환 # - 해당 symbol과 연관된 주소값이 반환 #사용법 # - 이를 받아서 함수포인터 또는 변수로 저장 void *dlsym(void *handle, const char *symbol); #라이브러리를 close 합니다. int dlclose (void *handle); 출처: ht..

[semaphore] c++ semaphore example code

개요 - multi process간에 사용할 semaphore 를 c++로 구현함. - named semaphore를 사용 - semaphore name은 process명으로 자동 사용 Source Code /* Copyright (C) * 2021 - doitnowman * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later versio..

[cmake] cmake 기초 부터 활용 까지

cmake란? 쉽게 말하면? - source의 코드의 빌드를 쉽게 해주는 tool 어렵게 말하면? - Meta-Make기반의 빌드 프로세스를 관리하고 작성는 툴 - 빌드에 필요한 설정, 의존성, 패키징을 위한 파일을 생성 및 관리 함 - 직접 빌드를 수행하는 빌드 시스템이 아님, build는 컴파일러가 한다. 핵심 기본 구조 - 프로젝트의 기본 구조 - 출처 : https://medium.com/swlh/c-project-structure-for-cmake-67d60135f6f5 Simple project structure The main idea about project structure is that you have at least 2 folders include and src. Folders pur..

[bash] 알면 좋은 팁!!

source와 . source와 .은 파일을 실행하는 명령어입니다. source - 현재 shell 기반으로 실행됨 Ex) #source test.sh 활용 1) bash 프로그램에서 다른 bash 프로그램은 include 할 때 사용됨. 활용 2) 현재 shell에 설정 사항을 바로 적용 하고 싶을떄 사용 . - 신규 shell을 하나 만들어서 실행됨 Ex) #. test.sh or #./test.sh 활용 1) bash 프로그램을 단독으로 실행 하고 싶을때 사용. bash 프로그램 대부분 이 방식으로 사용함.

[bash script] 유용한 bash 스크립트 모음

실행 결과를 바로 읽어서 한 줄씩 처리 하기 #!/bin/bash find ./ -name config.log | while read file_name; do echo "$file_name " && tail -n 1 $file_name done bash 세부 명령 read - 표준 입력(파이프라인 입력 또는 키보드 입력)에서 한 줄의 내용씩 읽어 들이는 명령어이다. while - 반복문 find - 검색 명령 Option 만들기 #!/bin/bash # Bash Menu Script Example PS3='Please enter your choice: ' options=("Option 1" "Option 2" "Option 3" "Quit") select opt in "${options[@]}" do c..

[해쉬1]-완주하지 못한 선수

문제 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "..

[cross-platform] ld-linux-x86-64.so 란

ld-linux-x86-64.so 란? elf interpreter이며 이를 이용하면 실행 파일과 관련된 shared library를 연결 시켜주는 역활을 합니다. 언제 사용하나? linux에서 다른 여러 platform에서 프로그램을 돌리고 싶을때 상용합니다. ld-linux-x8-64.so는 shared library path를 실행 시점에 다시 지정 해줄수 있기 때문이 가능 합니다. 핵심 컴파일 환경에서 "ld-linux-x86-64.so"와 "실행 파일"에 필요한 shared library를 실행 할 환경에 복사한 후 "ld-linux-x86-64.so" 로 프로그램을 실행 한다. 상세 사용법 1. compile 환경과 다른 환경에서 프로그램을 실행 합니다. - 그러면 어떠한 라이브러리가 없다고 ..

[time] Linux - UTC vs Unix Time vs Local time의 차이

1. UTC(Universal Time, Coordinated) 1) 정의 - 세슘 원자 진동수 기반의 표준시, 협정 세계시 - GMT가 조금씩 늦어지는 지구 자전의 영향을 받기 때문에 새로 재정된 표준시입니다. 2) UTC와 비교되는 GMT(Greenwich Mean TIme)란? - GMT 런던 외곽에 있는 그리니치 천문대를 기준으로 하는 평균 태양시로, 그리니치 표준시라고 부릅니다. 그리니치 천문대가 경도 0에 위치해 있기 때문에 이를 기준으로 한 것인데, 1925년 2월 5일부터 1972년 1월 1일 까지 세계 표준시로 사용되었습니다. 3) UTC와 GMT 차이점 - UTC와 GMT는 초의 소숫점 단위에서만 차이가 납니다. 2. Unix Time (=Epoch Time) 1) 정의 - UTC 시간..