問題タブ [timeval]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1763 参照

c++ - 絶対時間を取得するより良い方法は?

現在、 で使用する絶対時間を取得しようとしていpthread_mutex_timedlockます。timevalfromgettimeofdayをに追加してからtimespec、任意の時間を追加する必要があることはわかっています。

以下は機能しますが、このような大きな数で乗算するとオーバーフローする可能性があります。

これを行うためのより良い方法はありますか (ミリ秒単位で時間が与えられます):

上記では、指定された時間を現在の時間に加算して、絶対時間を取得しています。

私の代替コードは次のとおりです。

上記を行うためのより良い方法があるかどうか疑問に思っています。別のコードを使用したくないのですが、前のコードはあまり安全ではないようで、モジュロが好きではありません。

アイデア?

0 投票する
1 に答える
253 参照

php - PHP uniqid() のソースコードに関する質問

PHP ソース コード関数 uniqid() には、次の C コードがあります: (短縮するためにいくつかの型を削除しました)

批判はさておき、彼らは 64 ビットのタイムスタンプを生成しようとしています。

0xF423FはおそらくCLOCKS_PER_SEC - 1 (CLOCKS_PER_SEC は 10 進数の 1000000) です。

しかし、この0x100000はどこから来て、ビットごとの代わりにモジュラスを使用する理由は何ですか?

0 投票する
1 に答える
827 参照

c++ - uint64_t を構造体 timeval に変換しようとすると、負の値が返されますか? //編集済み

丸め誤差はありますか? どうすればこれを達成できますか?これは、コードが変換されている他の場所から呼び出されるルーチンです。uint64_t私は負の数を与えているの例で小さなスクリプトを書きました

0 投票する
1 に答える
100 参照

c - C で時間を測定すると間違った結果が返される

Cで時間をマイクロ秒単位で測定しようとしています。このコードを試してみましたが、値time_passedが 0 (または 1) ではなく巨大な数値です。

0 投票する
1 に答える
927 参照

c - void ポインターを関数パラメーターとして渡し、それを timeval 配列にキャストします

関数がcalc_sum()あり、その実行時間を測定したいとします。info_callback()メッセージを出力して実行時間を計算するコールバック関数があります。パラメーターとして void ポインターを使用します。にキャストvoid*して実行時間の開始/終了を取得し、差を計算したいのですが、関数内からその要素にアクセスできるようstruct timeval *に配列にポインタを渡す方法がわかりません。何を試しても、セグメンテーション違反が発生します...struct timeval *info_callback()

ポインターを機能させるには、どのようにポインターを渡してキャストする必要がありますか?

編集: Andy Schweigが提案したように、コードのエラーを修正しました

0 投票する
0 に答える
928 参照

c++ - LibModbus で応答タイムアウトを設定するための struct timeval の使用

ライブラリ LibModbus を使用して ADAM デバイスに接続しています。デバイスにいくつかのコマンドを送信する以前の問題がありましたが、より大きな応答タイムアウトを設定すると修正されました。これは以前のバージョンのライブラリにありました。

現在、set_response_timeout が timeval 構造体を使用する最新のライブラリを使用しています。ライブラリ内の関数マニュアルへのリンク: Get_response_timeout / set_response_timeout

私は次のようにライブラリを使用しています

しかし、get_response_timeout を使用して応答タイムアウトの値を出力すると、設定前と設定後に同じ値が返されます。

  • 設定前の modbus_get_response_timeout(mb, &old_response_timeout) の応答 old_tv_sec: 500000, old_tv_usec: 23224832

  • modbus_set_response_timeout(mb, &response_timeout) に送信する timeval 構造体の値 to_set_tv_sec: 60, to_set_tv_usec: 0

  • 新しい値を設定した後の modbus_get_response_timeout(mb, &old_response_timeout) の応答。

    new_tv_sec: 500000、new_tv_usec: 23224832

0 投票する
1 に答える
680 参照

c++ - クロス コンパイラ用に macos で time.h を使用する

次のコードを macos でコンパイルしたい:

しかし、私はエラーが発生しています

エラー: 'TIMEVAL_TO_TIMESPEC' はこのスコープ
TIMEVAL_TO_TIMESPEC (&tv, tp) で宣言されていません。

androidのクロスコンパイラでコンパイルしています。time.h ヘッダーを明示的に含めようとしましたが、それでも TIMEVAL_TO_TIMESPEC が見つかりません。このコードを正しく dompile するにはどうすればよいですか?

0 投票する
0 に答える
165 参照

c - timeval をランダムな時間に設定する方法

libevent を使用して、いくつかのタイムアウト後にいくつかのタスクを実行しています。タイムアウトはランダムに選択され、変更されるたびに変更されます。問題は、timeval 変数をランダムな時間に設定できないことです。

次のエラーが返されます: エラー: 初期化要素が定数エラーではありません: ('poll_interval_tv.tv_sec' の初期化に近い)