select() 보다는 pselect()를 사용하는 것이 좋다

pselect ? 다중 입출력 함수 - pselect() (일어)pselect로 시그널을 무시한다 예제 코드 - pselect #include <stdio.h> #include <signal.h> #include <sys/select.h> void sigusr1_handler(int sig) { printf("signal USR1 called\n"); } void sigusr2_handler(int sig) { printf("signal USR2 called\n"); } int main() { fd_set...
더 읽기

C++ - Aggregates(집성체)

출처 Aggregates(이하, 집성체)는 배열과 아래의 조건을 충족한 클래스이다. 사용자 정의 생성자(복사, 무브 포함)이 없음. 생성자는 전혀 기술되지 않거나 default 지정된 상태다. 모든 데이터 멤버가 public 이다. static 데이터 멤버의 가시성은 영향을 주지 않는다. 기본(부모) 클래스가 없음 가상 함수가 없음 struct...
더 읽기

C++ - delete 호출과 구현

출처 #define SAFE_DELETE(p)if(p){delete p;} 옛날, 마이크로 소프트가 DirectX의 샘플에서 이런 매크로를 정의한 바 있다. 아마도 많은 사람이 그 샘플의 대로 익힌 결과, 특히 생각 없이 구현하는 경우도 적지 않을것이다. 포인터가 null이 아님을 판정한 뒤 delete하는 처리이다. delete 대상 포인터가 null로...
더 읽기

C++ - 가상함수의 inline화에 대해서

출처: Web의 어딘가… 혹시 가상함수는 inline 되지 않는다고 생각하는 사람이 있을 것이다. 경우에 따라서 되기도 하고 안 되기도 한다. 되는 경우는 컴파일 시점에서 어떤 클래스의 가상함수를 사용하는지 알 수 있느냐 이다. 아래 코드의 경우 컴파일 시점에서 Delived 클래스의 Function 멤버를...
더 읽기

C++ - 비 public 계승을 사용하는 곳

출처: 웹 어딘가에서… 계승에는 3가지 단계가 있다. public protected private 객체 지향적 사고로는 public 계승은 자주 is-a 관계를 나타낸다 라고 한다. 한편 private 계승, protected 계승은 is-a 관계가 아니다. is-a 관계와 대비해서 has-a 관계 또는 is-implemented-in-terms-of 관계라고 불리기도 한다. public...
더 읽기