6

タイトルがすべてを物語っています。

std::chrono::system_clock::duration 値を受け取り、それを timeval sruct に変換する必要がある関数を実装して、システム関数に渡すことができるようにする必要があります。

4

2 に答える 2

6

dを入力期間値とし、tvをconvert関数によって埋められた出力timeval 構造体とします。注: 期間が負の場合、この関数は timeval を 0 に設定します。

void convert( const std::chrono::system_clock::duration &d, timeval &tv )
{
  chrono::microseconds usec = chrono::duration_cast<chrono::microseconds>(d);
  if( usec <= chrono::microseconds(0) )
    tv.tv_sec = tv.tv_usec = 0;
  else
  {
    tv.tv_sec = usec.count()/1000000;
    tv.tv_usec = usec.count()%1000000;
  }
}
于 2013-07-02T10:22:58.547 に答える