私はMac用のコマンドラインユーティリティを書いていました。これは秒ごとにステータス情報を表示するはずです。明らかに、私は毎秒何千回も投票したくない。私が考えることができる唯一の他の方法は、現在の時間を取得し、選択を使用して差を待つことです。より良い方法がありますか?1秒に1回、2回に1回コードを実行できますか?
2
A
答えて
4
待っていると、少なくともその時間は待っていることが保証されています。 OSXはリアルタイムOSではありません。そのようなことを保証する方法はないと思います。
推定したいだけなら、現在とあなたが望む時間との差を寝かせます(おそらくログの時間を与えるのに少し時間がかかります)。
1
通常、タイマーを使用してメソッドをスケジューリングするのは、このトリックです。しかし、覚えておくことが重要ですが、精度は単純なタイマーでは最良ではありません。
1
は、ここで私が持っているものだ:それは十分に良いことがありますへの「目玉」の精度、作品
#import <stdlib.h>
#import <stdio.h>
#import <time.h>
#import <sys/time.h>
#define TIME_LENGTH 9
int main()
{
struct timeval now;
struct timespec wait;
time_t seconds;
char str[TIME_LENGTH];
wait.tv_sec = 0;
for (;;) {
gettimeofday(&now, NULL);
wait.tv_nsec = (1000000 - now.tv_usec) * 1000;
nanosleep(&wait, NULL);
seconds = now.tv_sec+1;
strftime(str, TIME_LENGTH, "%T", localtime(&seconds));
puts(str);
}
}
。それは組み込みのメニューバーの時計と同期して更新されているようです。明らかに、time.h
には、clock_nanosleep
の機能があります。一定時間待機するのではなく、一定時間待機することができますが、この使用法はMacではサポートされていません。
関連する問題
- 1. 1日に1回コードを実行
- 2. PHPコードを1週間に1回、ランダムに実行します。
- 3. クラスごとに1回、グループに1回実行する
- 4. javascriptでコードを1回実行する
- 5. タスクを定期的に実行する(1日に1回/週に1回)
- 6. リーフレットAngularFire2コード内ボタン1回クリック作品1回2回クリック作品2回3回クリック作品3回
- 7. Netbeans CUnitはアプリケーションの起動1回につき1回実行されます
- 8. symfonyはsafeguard_userテーブルで2回(空)1回、プロファイルテーブルで1回
- 9. メソッドをJavaで1秒間にX回実行する
- 10. $時計が2回ではなく1回実行する
- 11. SearchView onQueryTextSubmitを1回押すと2回実行する
- 12. SwiftはFirebaseで1日に1回実行します
- 13. Timer.scheduleは期間が1回でも1回実行されます
- 14. 1回のリダイレクトで2回の操作
- 15. py.testメソッドは1回の実行につき1回だけ実行されます
- 16. ループを1秒でn回実行する方法
- 17. 月に1回実行するスケジュールタイマー - C#
- 18. サーバーを1日に1回実行するようにする
- 19. 1分に1回以上クロンジョブを実行するには?
- 20. シェルスクリプトをcronjobで1回実行する
- 21. Javascript - セッションごとに1回実行
- 22. 1回目の実行後にQTCreator segfault
- 23. Redux-Sagaは1回のアクションで2回実行されています
- 24. Windowsサービスを1ヶ月に1回実行する
- 25. pythonスクリプトを1日に2回自動的に実行する
- 26. 1回のアクションを2回実行することから保護する
- 27. Objective-c 1秒に1回カウントする方法
- 28. ノードを1軸回りに回す
- 29. Golangでは、1秒間に何回もコマンドを何回実行するのですか?
- 30. TargetFrameworksタグでフレームワークごとに1回実行されるターゲットの前に、1回ではなく1回だけ実行されるMSBuildターゲットの作成方法?