IT/C++ 3

[C++] 현재 날짜와 현재 시각 출력하기

C++에서 오늘 날짜와 현재 시각을 출력하는 방법에 대해 정리해보겠습니다. 우선 C언어에서 사용하던 헤더 파일은 헤더 파일을 이용하면 똑같이 사용할 수 있습니다. 그러고 보니 헤더 파일을 그대로 사용하면 될 것 같은데, 굳이 헤더 파일을 새롭게 만든 이유가 궁금하네요. 아래 코드는 현재 날짜와 시각 정보를 출력하는 코드입니다. #include #include int main() { struct tm curr_tm; time_t curr_time = time(nullptr); localtime_r(&curr_time, &curr_tm); int curr_year = curr_tm.tm_year + 1900; int curr_month = curr_tm.tm_mon + 1; int curr_day = cur..

IT/C++ 2020.01.30

[C++] C++에서 std::thread를 어떻게 종료시킬 수 있을까?

시작하기에 앞서, 본 포스트는 "How to terminate a C++ std::thread?" 를 번역한 글임을 밝힙니다. C++11부터, C++은 스레드를 자체적으로 지원하고자 std::thread를 도입하였다. 그 이후로, C++에서 새로운 스레드를 사용하는 것은 새로운 객체를 생성하는 것만큼이나 간단해졌다. 하지만, 동작하고 있는 C++ 스레드를 동적으로 종료하는 작업은 여전히 어렵다. 특히, joined 또는 detached 상태의 스레드라면 더더욱 그러하다. 이 주제에 관해 상당히 많은 논의가 오고 갔는데, 결론은 다음의 사이트에서 찾을 수 있다. “terminate 1 thread + forcefully (target thread doesn’t cooperate) + pure C++11 =..

IT/C++ 2020.01.18

[C++] Thread 정리하기

얼마 전에 C++로 구현해야 하는 작업이 있었습니다. 구현할 때 Thread를 이용해야해서, 라이브러리를 이용했는데, 해당 내용을 정리하고자 합니다. "A thread of execution is a sequence of instructions that can be executed concurrently with other such sequences in multithreading environments, while sharing a same address space." - cplusplus.com "스레드는 우선, thread를 이용하기 위해서는 헤더를 include 해야 합니다. 아래는 cplusplus.com에서 소개하는 예제입니다. #include #include void foo() { // do..

IT/C++ 2020.01.15