일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 나스닥
- homebridge
- 배당
- 애플
- 월패드
- 해외주식
- RS-485
- matter
- 오블완
- Home Assistant
- 국내주식
- 힐스테이트 광교산
- 코스피
- Python
- 홈네트워크
- Bestin
- 공모주
- 현대통신
- Apple
- 매터
- esp32
- 미국주식
- Espressif
- 파이썬
- 티스토리챌린지
- raspberry pi
- cluster
- SK텔레콤
- ConnectedHomeIP
- MQTT
- Today
- Total
목록Software/C, C++ (11)
YOGYUI
C++: sort standard vertor by multiple attributes C++ 코딩 작업 중에, Standard Vector에 담아둔 클래스 인스턴스들의 내부 변수값을 토대로 벡터를 정렬해야 하는 경우가 있어서 기록삼아 포스팅해본다 의 std::sort 함수와 람다식을 사용해 정렬에 사용하고자 하는 속성들을 순차적으로 조건문을 작성해주면 된다 예를 들기 위해 다음과 같이 Student 클래스를 만들어보자 class Student { public: Student(const char* name, int class_no, int number) { memcpy(m_name, name, 32); m_class_no = class_no; m_number = number; } char m_name[3..
C++::Prevent duplicated execution (Linux) 지난 포스팅에서 특정 프로세스의 ID값(PID)들을 조회하는 코드를 구현해봤다 C++::Linux에서 특정 프로세스의 ID값(PID) 읽어오기 (pidof 명령어) C++::Linux에서 특정 프로세스의 ID값(PID) 읽어오기 (pidof 명령어) C++::Get PID of specific process using 'pidof' command (Linux) 리눅스에서 특정 프로세스의 ID(PID)값을 읽어오는 C++코드를 작성해봤다 모든 코드는 Ubuntu 20.04.4 LTS 환경에서 테스트함 1. 터미널 명령어.. yogyui.tistory.com 이를 활용해 프로그램의 중복 실행을 방지할 수 있는 코드를 작성해보자 모든 ..
C++::Get PID of specific process using 'pidof' command (Linux) 리눅스에서 특정 프로세스의 ID(PID)값을 읽어오는 C++코드를 작성해봤다 모든 코드는 Ubuntu 20.04.4 LTS 환경에서 테스트함 1. 터미널 명령어 (pidof) 리눅스에서 pidof 명령어를 프로세스명과 함께 터미널에 입력하면 해당 이름을 가진 프로세스(들)의 ID값을 조회할 수 있다 (예를 위해 VSCode를 여러개 실행시킨 후 System Monitor 툴과 비교해봤다) $ pidof VSCode의 프로세스명은 code 이 외에도 ps, pgrep 등 다른 명령어를 통해서도 같은 결과를 얻을 수 있으니, 따로 검색해보기 바란다 2. 코드 구현 C/C++에서는 popen 함수로..
C++: Get MAC Address of Network Adapter in Linux 인터넷 관련 코딩 작업을 하다보면 서버에 접속된 네트워크 어댑터의 정보를 확인해야하는 경우가 종종 생긴다 Linux OS 환경에서 네트워크 어댑터의 MAC(Media Access Control) 주소를 알아내는 간단한 방법을 알아본 뒤, 이를 C++로 구현해보자 (MAC address에 관한 간략한 설명은 위키피디아 참고) ※ Ubuntu 20.04.4 LTS 환경에서 구현 및 테스트 1. 터미널 명령어 /sys/class/net/ 디렉터리 내부를 살펴보자 (ls 명령어) $ ls /sys/class/net PC에 장착된 네트워크 어댑터의 이름들이 보인다 특정 어댑터의 내부 정보 목록들을 마찬가지로 ls 명령어로 살펴..
C++: Check Directory Existence (g++) #include bool check_dir_exist(const char *path) { bool exist = false; struct stat st; if(stat(path, &st) == 0) { if( ((st.st_mode) & S_IFMT) == S_IFDIR ) { exist = true; } } return exist; } 헤더파일 를 include한 뒤 stat 함수 호출 int stat(const char *path, struct stat *buf); path: 경로명 문자열 포인터 (입력) buf: 경로에 대한 정보가 담긴 stat 구조체 (출력) 리턴값: 0 = 성공, -1 = 실패 (실패 이유는 다양하며, errno..
C++: chrono - Get Current Date/Time including millisecond (g++, POSIX) 윈도우즈 OS 타겟으로 개발한 C++ 기반 어플리케이션을 리눅스 OS에서 구동되게 포팅하는 작업을 진행하고 있다 (왠만한 유틸리티 함수들을 죄다 MFC를 활용해서 개발하다보니 손봐야할 게 한두개가 아니다 ㅠ) 이왕 포팅하는거 gcc/g++ 컴파일러로 구동할 수 있게 만들어보자 (POSIX 대응) C++11 이상을 사용하고 있다면 모듈을 가져와서 간단하게 구현할 수 있다 #include #include static std::string get_time_stamp() { const auto now = std::chrono::system_clock::now(); time_t tm_no..
Turn Off / Restart PC Power by Programming Code MS Windows 환경에서 프로그래밍 코드(Visual C++, MFC)를 통해 PC의 전원을 끄는 방법을 알아보자 용도) Windows OS에 접근하지 못하게 프로그램을 구성한 뒤, PC의 전원을 끄거나 재시작하고자 할 경우 ※ Windows 10, Visual Studio 2019에서 구현 및 테스트함 1. API 사용 - ExitWindowsEx https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-exitwindowsex 에 선언되어 있는 ExitWindowsEx 함수를 호출하면 된다 함수 원형은 다음과 같다 BOOL ExitWindowsE..
CRC8, CRC16, CRC32 Calculation Algorithms Source Code in C/C++ (GitHub) 얼마전 회사 업무로 CRC16-ARC 계산 알고리즘을 직접 구현했었는데, 하다보니 욕심이 나서 CRC8, CRC32까지 구현해서 깃허브에 저장소를 마련하고 커밋했다 https://github.com/YOGYUI/CRC GitHub - YOGYUI/CRC: CRC Calculation library (CPP) CRC Calculation library (CPP). Contribute to YOGYUI/CRC development by creating an account on GitHub. github.com 코드 몇백줄 작성하는 것보다 별 내용도 없는 마크다운 몇십줄 작성하는게 ..
CRC-16 Calculation Algorithm Source Code in C/C++ low-level network 인터페이스를 구현하는 회사 업무 중 송/수신 패킷의 CRC 계산 및 검증을 임베디드 HW단에서 구현해야 하는 이슈가 있어서 직접 C++로 구현해봤다 (회사에서 자체 제작한 보드들간에 통신하는 방식이라 오류 검증은 심플하게 CRC 사용하기로 결정) 본 포스트에서는 CRC-16에 대해서만 구현한 결과를 다루고 있으며, CRC-8이나 CRC-32 구현은 다른 글에서 다루도록 한다 (사실 코어 알고리즘은 크게 변동이 없어서 쓸만한 거리도 없겠지만...) CRC(cyclic redundancy check)에 대한 소개는 위키백과를 참고하도록 한다 순환 중복 검사(巡環重復檢査), CRC(cycl..
에 정의되어 있는 std::search 함수를 사용하면 쉽게 구현할 수 있다 template ForwardIterator1 search (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); Search range for subsequence Searches the range [first1,last1) for the first occurrence of the sequence defined by [first2,last2), and returns an iterator to its first element, or last1 if no occurrences are found. The ele..
윈도 OS가 설치된 PC에서 소프트웨어 구동 시 특정 장치의 드라이버가 설치되어있는지 여부를 확인해야 한다는 고객 요구사항이 있어 이리저리 구글링해본뒤 직접 구현해보았다 그 중 개발자들에게 도움이 될만한 기본적인 내용을 간단히 적어본다 MFC의 Win32 API 중 SetupAPI를 활용하면 제어판의 장치 관리자에서 접근 가능한 거의 모든 정보를 열람할 수 있다 https://docs.microsoft.com/en-us/windows/win32/api/setupapi/ Setupapi.h header - Win32 apps 01/11/2019 38 minutes to read In this article --> This header is used by Application Installation and ..