{"id":14156,"date":"2023-07-18T12:15:19","date_gmt":"2023-07-18T12:15:19","guid":{"rendered":"https:\/\/blog.bachi.net\/?p=14156"},"modified":"2023-07-20T15:22:41","modified_gmt":"2023-07-20T15:22:41","slug":"c-chrono","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=14156","title":{"rendered":"C++ chrono"},"content":{"rendered":"<p><a href=\"http:\/\/www.rocksolidwebdesign.com\/p\/cpp-performance-timer\/\">C++ Performance Timer<\/a>, uses the C++20 language standard<\/p>\n<h3>cppreference.com<\/h3>\n<p><a href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\">Date and time utilities<\/a><br \/>\n<a href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a><br \/>\n<a href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\/formatter\">std::formatter<std::chrono::duration><\/a><br \/>\n<a href=\"https:\/\/en.cppreference.com\/w\/cpp\/io\/manip\/put_time\">std::put_time<\/a><\/p>\n<h3>cplusplus.com<\/h3>\n<p><a href=\"https:\/\/cplusplus.com\/reference\/chrono\/\"><chrono> Time library<\/a><br \/>\n<a href=\"https:\/\/cplusplus.com\/reference\/chrono\/duration\/duration\/\">std::chrono::duration<\/a><\/p>\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/1487695\/c-cross-platform-high-resolution-timer\">C++ Cross-Platform High-Resolution Timer<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/35856969\/chrono-literals-is-not-a-namespace-name\">chrono_literals is not a namespace-name<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/14391327\/how-to-get-duration-as-int-millis-and-float-seconds-from-chrono\">How to get duration, as int milli&#8217;s and float seconds from <chrono>?<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/17223096\/outputting-date-and-time-in-c-using-stdchrono\">Outputting Date and Time in C++ using std::chrono<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/27677964\/print-current-system-time-in-nanoseconds-using-c-chrono\">Print current system time in nanoseconds using c++ chrono<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/34857119\/how-to-convert-stdchronotime-point-to-string\">How to convert std::chrono::time_point to string<\/a><\/p>\n<p><!-- ---------------------------------------------------------------------------- --><\/p>\n<hr\/>\n<h1>Old-Style C<\/h1>\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/27677964\/print-current-system-time-in-nanoseconds-using-c-chrono\">Print current system time in nanoseconds using c++ chrono<\/a><br \/>\n<a href=\"https:\/\/stackoverflow.com\/questions\/33609401\/what-is-gettimeofday-equivalent-in-c11\">what is gettimeofday() equivalent in c++11<\/a><\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nstruct timeval now;\r\n\r\n\/\/ seconds and nanoseconds\r\ngettimeofday(&amp;now, NULL);\r\nconst std::tm *localTime = std::localtime((time_t *) &amp;now.tv_sec);\r\n\r\n\/\/ only in seconds\r\n\/\/std::time_t now = std::time(nullptr);\r\n\/\/const std::tm *localTime = std::localtime(&amp;now);\r\n\r\n\/\/ GCC &lt; 5.0\r\nchar dateTime&#x5B;] = &quot;00.00.00 00:00:00.&quot;;\r\nchar millis &#x5B;] = &quot;000&quot;;\r\nstrftime(dateTime, sizeof(dateTime), &quot;%d.%m.%y %H:%M:%S.&quot;, localTime);\r\nsnprintf(millis, sizeof(millis), &quot;%03li&quot;, now.tv_usec\/1000 );\r\n\r\ncout &lt;&lt; dateTime &lt;&lt; millis &lt;&lt; &quot; | &quot;;\r\n<\/pre>\n<p><!-- ---------------------------------------------------------------------------- --><\/p>\n<hr\/>\n<h1>date<\/h1>\n<p><a href=\"https:\/\/howardhinnant.github.io\/date\/date.html\"><\/a><\/p>\n<p><!-- ---------------------------------------------------------------------------- --><\/p>\n<hr\/>\n<h1>SIGSEGV<\/h1>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n$ gdb build\/bin\/PerfTest\r\nGNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7\r\nCopyright (C) 2013 Free Software Foundation, Inc.\r\nLicense GPLv3+: GNU GPL version 3 or later &lt;http:\/\/gnu.org\/licenses\/gpl.html&gt;\r\nThis is free software: you are free to change and redistribute it.\r\nThere is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;\r\nand &quot;show warranty&quot; for details.\r\nThis GDB was configured as &quot;x86_64-redhat-linux-gnu&quot;.\r\nFor bug reporting instructions, please see:\r\n&lt;http:\/\/www.gnu.org\/software\/gdb\/bugs\/&gt;...\r\nReading symbols from \/app\/dev\/andreas\/build\/bin\/PerfTest...done.\r\n(gdb) r\r\nStarting program: \/app\/dev\/andreas\/build\/bin\/PerfTest\r\n&#x5B;Thread debugging using libthread_db enabled]\r\nUsing host libthread_db library &quot;\/lib64\/libthread_db.so.1&quot;.\r\n\r\nProgram received signal SIGSEGV, Segmentation fault.\r\n0x00007ffff6b316a3 in std::basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;&amp; std::operator&lt;&lt; &lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;(std::basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) () from \/lib64\/libstdc++.so.6\r\nMissing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64 libgcc-4.8.5-44.el7.x86_64 libstdc++-4.8.5-44.el7.x86_64\r\n(gdb) bt\r\n#0  0x00007ffff6b316a3 in std::basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;&amp; std::operator&lt;&lt; &lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;(std::basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;&amp;, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;) () from \/lib64\/libstdc++.so.6\r\n#1  0x0000000000401751 in app (trx=0x7fffffffe260) at \/app\/dev\/andreas\/PerfTest\/main.cpp:47\r\n#2  0x00000000004018d1 in main (argc=1, argv=0x7fffffffe398) at \/app\/dev\/andreas\/PerfTest\/main.cpp:104\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>C++ Performance Timer, uses the C++20 language standard cppreference.com Date and time utilities std::chrono::duration std::formatter std::put_time cplusplus.com Time library std::chrono::duration C++ Cross-Platform High-Resolution Timer chrono_literals is not a namespace-name How to get duration, as int milli&#8217;s and float seconds from ? Outputting Date and Time in C++ using std::chrono Print current system time in nanoseconds [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-14156","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/14156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14156"}],"version-history":[{"count":8,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/14156\/revisions"}],"predecessor-version":[{"id":14179,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/14156\/revisions\/14179"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}