warning C4996 'inet_addr'

몇 년전에 만들어진 Winsock API를 사용한 코드를 최신 VC++로 빌드하면 아래와 같은 경고를 볼 수 있다. warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings inet_addr 라는 API는 비 추천이 되었으므로 다른 API를...
더 읽기

lock-free 알고리즘 - 순차일관성

순차일관성(sequential consitency)이란? 순차일관성은 컴퓨터 시스템에 관한 메모리 일관성 모델의 하나이며 정의를 Wikipedia에서 인용하면 “어떤 실행 결과도 모든 프로세서가 어떤 순서로 차례적으로 실행한 결과와 동일하며, 또한 각각의 프로세서의 처리 순서가 프로그램에서 한 대로다”라고 한다. 병렬 처리 중인 실행 결과가 항상 순차적으로...
더 읽기

rasberry pi zero + C#으로 카메라 조작

nuget의 아래 모듈을 받는다. https://www.nuget.org/packages/Unosquare.Raspberry.IO/ GPIO 에 더해서 카메라 모듈도 조작할 수 있다. 이것을 사용하여 public static async Task SendImage() { var cam = new Unosquare.RaspberryIO.Camera.CameraController(); var result = await cam.CaptureImageJpegAsync(640, 480,System.Threading.CancellationToken.None); } 출처: http://qiita.com/divideby_zero/items/9bb550529d539a054dfc
더 읽기

C++ - The Observable C++ library

NHN Next의 학생이 C++ Advance 수업의 과제로 번역 정리한 것이다. [원문] The Observable C++ library – implementing the observer pattern Observable C++ expressions – using the Observable library 슬라이드쉐어
더 읽기

Win32API - CRITICAL_SECTION의 OwningThread

Windows Vista부터 CRITICAL_SECTION의 내부 구조가 바뀌었다고 한다. 이 중 눈여겨 볼 것은 CRITICAL_SECTION의 멤버 변수 중 OwningThread 인데 이 변수에는 CRITICAL_SECTION을 소유중인 스레드의 ThreadID가 설정된다. 그래서 멀티스레드에서 CRITICAL_SECTION를 사용할 때 특정 스레드가 락을 획득하지 못하고 대기중이라면 어떤 스레드에서 락을 소유중인지를...
더 읽기

.NET Core용 이미지 라이브러리

.NET Core를 사용하여 애플리케이션을 개발할 때 개발자가 알아야 할 결점 하나는 영상 기반 API가 없는 것이다. 보급된 API 중의 하나로 훌륭한 System.Drawing 이 있지만 이것은 Windows 기반의 GDI+ 인터페이스에 의존하고 있다. .NET Core에서는 이용할 수 없다. 다행스럽게도 많은 개발자 커뮤니티가...
더 읽기

C++ - 메모리 영역

메모리 영역에 대해서 5 종류의 메모리 영역 C++ 에서는 다른 특성을 갖는 5 종류의 메모리 영역이 존재한다. (※ 단 c++ 규격에는 스택이나 힙은 명시 하지 않고 Free-Store는 명시 하고 있다) Const Data 컴파일 시 값을 알 수 있는 데이터(예를 들면...
더 읽기