【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.21558

msecまでの時間表示
投稿者---tongari(2005/06/22 19:20:29)


宜しくお願い致します。

OSはLinux(RedHat9)となります。

Linuxでは、system関数でdateコマンドを呼んであげれば
時間、分、秒が取得できますが、これを

時間 : 分 : 秒 : m秒 といった感じに

表示するための関数もしくはdateコマンドのようなもの
はありますでしょうか?

下記関数などを利用して見たのですが、このような関数
であると、意味不明な数値が出力されるだけで、時間の
表示ができません(関数を2度呼び、その差分を計算した
ら、msec単位の時間を取得できますが・・・)。

double Time()
{
    struct timeval tv;
    gettimeofday(&tv, NULL);

    return tv.tv_sec + (double)tv.tv_usec * 1e-6;
}


何か良い方法があればご教授ください。宜しくお願い致します。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:msecまでの時間表示 21559 おでん 2005/06/22 19:28:21
<子記事> Re:msecまでの時間表示 21560 まきじ 2005/06/22 19:30:17


No.21559

Re:msecまでの時間表示
投稿者---おでん(2005/06/22 19:28:21)


>下記関数などを利用して見たのですが、このような関数
>であると、意味不明な数値が出力されるだけで、時間の
>表示ができません(関数を2度呼び、その差分を計算した
>ら、msec単位の時間を取得できますが・・・)。
>

時間を計りたい(終了時刻ー開始時刻など)ならばclock()が使えますが?


この投稿にコメントする

削除パスワード

No.21561

msecまでの時間表示
投稿者---tongari(2005/06/22 19:34:47)


>時間を計りたい(終了時刻ー開始時刻など)ならばclock()が使えますが?

申し訳ございません、言葉が足りませんでしたね。

終了時刻ー開始時刻ではなく、
現在の時間を
時間 : 分 : 秒 : m秒

と表示したいのです。

clock関数であると差分である経過時間となってしまいます。

以上、宜しくお願い致します。


この投稿にコメントする

削除パスワード

No.21567

Re:msecまでの時間表示
投稿者---おでん(2005/06/22 21:55:07)


>終了時刻ー開始時刻ではなく、
>現在の時間を
>時間 : 分 : 秒 : m秒
>
>と表示したいのです。
>

以下のページが参考になるかもしれません。
http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/control/lcycle.html


この投稿にコメントする

削除パスワード

No.21560

Re:msecまでの時間表示
投稿者---まきじ(2005/06/22 19:30:17)


>時間 : 分 : 秒 : m秒 といった感じに
>
>表示するための関数もしくはdateコマンドのようなもの
>はありますでしょうか?

time 関数で、現在時刻を取得して、localtime で
tm 構造体に格納して、strftime で変換したらどうでしょうか?


この投稿にコメントする

削除パスワード

No.21562

msecまでの時間表示
投稿者---tongari(2005/06/22 19:39:12)


>time 関数で、現在時刻を取得して、localtime で
>tm 構造体に格納して、strftime で変換したらどうでしょうか?

ご解答有難うございます。
strftime関数を調べさせて頂きました。
この関数であると、時間、分、秒までは表示可能ですが、
m秒表示ができないかと思うのですが可能なのでしょうか?


この投稿にコメントする

削除パスワード

No.21563

Re:msecまでの時間表示
投稿者---まきじ(2005/06/22 20:06:54)


>strftime関数を調べさせて頂きました。
>この関数であると、時間、分、秒までは表示可能ですが、
>m秒表示ができないかと思うのですが可能なのでしょうか?

標準ライブラリ関数で、ミリ秒まで取得できる関数は、
私には解りません(^^;
API など使えばできるのかな?


この投稿にコメントする

削除パスワード

No.21564

msecまでの時間表示
投稿者---tongari(2005/06/22 20:10:56)


>標準ライブラリ関数で、ミリ秒まで取得できる関数は、
>私には解りません(^^;
>API など使えばできるのかな?

そうですか、残念です。

gettimeofday関数で取得した数値を計算して
時間、分、秒、m秒を取得することはできませんかね?


この投稿にコメントする

削除パスワード

No.21565

Re:msecまでの時間表示
投稿者---yukihiro(2005/06/22 21:03:09)


gettimeofdayで得られるtimeval::tv_secはtime関数で得られる値と同じなので、
それをまきじさんの示された方法で時分秒の文字列に変換できます。

ミリ秒単位の数字はtimeval::tv_usecを1000で割れば得られます。



この投稿にコメントする

削除パスワード

No.21574

Re:msecまでの時間表示
投稿者---かずま(2005/06/23 02:13:05)


#include <stdio.h>
#include <time.h>
#include <sys/time.h>

int main(void)
{
    struct tm *tp;
    struct timeval tv;

    gettimeofday(&tv, NULL);
    tp = localtime(&tv.tv_sec);
    printf("%02d:%02d:%02d.%03d\n",
        tp->tm_hour, tp->tm_min, tp->tm_sec, tv.tv_usec/1000);
    return 0;
}



この投稿にコメントする

削除パスワード

No.21579

msecまでの時間表示
投稿者---tongari(2005/06/23 10:31:15)


>以下のページが参考になるかもしれません。 >http://www.mech.tohoku-gakuin.ac.jp/rde/contents/linux/control/lcycle.html おでんさん 情報有難うございました。 確認させて頂き、分、秒の表示方法について理解できました。 有難うございました。


この投稿にコメントする

削除パスワード

No.21581

msecまでの時間表示
tongari(2005/06/23 10:40:02)


yukihiroさん 有難うございました。 gettimeofday関数を使用方法についてとても勉強に なりました。 かずまさん サンプルプログラムまで作って頂き有難うございました。 確認させて頂き、私の望んでいた結果を出力することで できそうです。 どうも、有難うございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧