問題タブ [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.
c++ - 絶対時間を取得するより良い方法は?
現在、 で使用する絶対時間を取得しようとしていpthread_mutex_timedlock
ます。timeval
fromgettimeofday
をに追加してからtimespec
、任意の時間を追加する必要があることはわかっています。
以下は機能しますが、このような大きな数で乗算するとオーバーフローする可能性があります。
これを行うためのより良い方法はありますか (ミリ秒単位で時間が与えられます):
上記では、指定された時間を現在の時間に加算して、絶対時間を取得しています。
私の代替コードは次のとおりです。
上記を行うためのより良い方法があるかどうか疑問に思っています。別のコードを使用したくないのですが、前のコードはあまり安全ではないようで、モジュロが好きではありません。
アイデア?
php - PHP uniqid() のソースコードに関する質問
PHP ソース コード関数 uniqid() には、次の C コードがあります: (短縮するためにいくつかの型を削除しました)
批判はさておき、彼らは 64 ビットのタイムスタンプを生成しようとしています。
0xF423FはおそらくCLOCKS_PER_SEC - 1 (CLOCKS_PER_SEC は 10 進数の 1000000) です。
しかし、この0x100000はどこから来て、ビットごとの代わりにモジュラスを使用する理由は何ですか?
c++ - uint64_t を構造体 timeval に変換しようとすると、負の値が返されますか? //編集済み
丸め誤差はありますか? どうすればこれを達成できますか?これは、コードが変換されている他の場所から呼び出されるルーチンです。uint64_t
私は負の数を与えているの例で小さなスクリプトを書きました
c - C で時間を測定すると間違った結果が返される
Cで時間をマイクロ秒単位で測定しようとしています。このコードを試してみましたが、値time_passed
が 0 (または 1) ではなく巨大な数値です。
c - void ポインターを関数パラメーターとして渡し、それを timeval 配列にキャストします
関数がcalc_sum()
あり、その実行時間を測定したいとします。info_callback()
メッセージを出力して実行時間を計算するコールバック関数があります。パラメーターとして void ポインターを使用します。にキャストvoid*
して実行時間の開始/終了を取得し、差を計算したいのですが、関数内からその要素にアクセスできるようstruct timeval *
に配列にポインタを渡す方法がわかりません。何を試しても、セグメンテーション違反が発生します...struct timeval *
info_callback()
ポインターを機能させるには、どのようにポインターを渡してキャストする必要がありますか?
編集: Andy Schweigが提案したように、コードのエラーを修正しました
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
c++ - クロス コンパイラ用に macos で time.h を使用する
次のコードを macos でコンパイルしたい:
しかし、私はエラーが発生しています
エラー: 'TIMEVAL_TO_TIMESPEC' はこのスコープ
TIMEVAL_TO_TIMESPEC (&tv, tp) で宣言されていません。
androidのクロスコンパイラでコンパイルしています。time.h ヘッダーを明示的に含めようとしましたが、それでも TIMEVAL_TO_TIMESPEC が見つかりません。このコードを正しく dompile するにはどうすればよいですか?
c - timeval をランダムな時間に設定する方法
libevent を使用して、いくつかのタイムアウト後にいくつかのタスクを実行しています。タイムアウトはランダムに選択され、変更されるたびに変更されます。問題は、timeval 変数をランダムな時間に設定できないことです。
次のエラーが返されます: エラー: 初期化要素が定数エラーではありません: ('poll_interval_tv.tv_sec' の初期化に近い)