• ベストアンサー

構造体TIME_OF_DAY_INFO(リモート時刻)の構造体を出力したい

NINJA104の回答

  • ベストアンサー
  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.1

こんなの↓どうでしょうか?

参考URL:
http://www.tama.or.jp/cgi-bin/bsdi-man?gettimeofday(2)
phoo
質問者

お礼

ありがとうございます

関連するQ&A

  • 構造体の返し方

    こういう構造体があるとして、 typedef struct Day{  int day1, day2, day3; } Day; このような関数で値を入れて、 int DayTest (char s) {  Day day;  day1 = 2003;  day2 = 12;  dat3 = 31;  return < ここの返し方がわからない >; } これを main() 関数で参照できるようにするには どうすればいいのでしょうか。 printf で出力させるとかで結構です。 ポインタだとは思うのですが、うまくいきません。

  • Visual Cのstat構造体の動作

    はじめまして。 stat構造体をprintf系の関数で出力するときの異常動作で悩んでいます。 stat関数で読み取った複数のstat構造体の日付情報をprintf関数で 出力書式を"%d %d \n"のように連続して出力するとvisual Cだけ、 二つ目の変数が期待した通りに出力できないのでソースをいじって どのような状態で出力できないのか確認したところ、 Visual studio 2012,2013のvisual Cに於いては、 stat構造体の time_t型変数をprintf系関数で出力する場合、その変数以降に 続けて出力する他の変数が正常に出力できなくなることに 気づきました。これはなぜでしょう? 以下のC言語のソースの例では、先にstring変数を出力してstat構造体の time_t型変数を出力した場合(debug2)には問題ないのに、 変数の出力順を入れ替えるとVisual Cではtime_t型変数以降は 正常に出力できません。(debug3) 尚、time_t変数のst_mtime、st_ctime共、同様の結果になります。 printfの書式通りに出力されないだけで、変数の中身は壊れていません。 // 以下サンプルソース wsttes.c #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/stat.h> #ifdef _HPUX_SOURCE //HP-UXのansi-Cでもコンパイルできるように #define _stat stat #endif int main() { char s1[100]; // s1 struct _stat t1; // t1 strcpy(s1,"testA"); t1.st_atime=111111; // stat構造体を変数として利用しているだけ printf("debug0 s1=%s\n",s1); printf("debug1 t1=%d\n",t1.st_atime); printf("debug2 s1=%s t1=%d\n",s1,t1.st_atime); printf("debug3 t1=%d s1=%s\n",t1.st_atime,s1); return 0; } /*実行結果 Borland C(BCC32) d:\users\work\bc>wsttes debug0 s1=testA debug1 t1=111111 debug2 s1=testA t1=111111 debug3 t1=111111 s1=testA Visual C(visual studio 2012 or 2013) d:\users\work\vc>wsttes debug0 s1=testA debug1 t1=111111 debug2 s1=testA t1=111111 debug3 t1=111111 s1=(null)  ←ここだけ異常? HP-UX ansi-C hp-ux % wsttes debug0 s1=testA debug1 t1=111111 debug2 s1=testA t1=111111 debug3 t1=111111 s1=testA */

  • 異なるタイムゾーンのタイムサーバーとの時刻同期方法

    サーバー管理初心者の為、基本的なことかもしれませんがご教示下さい。 Unix(Solaris・AIX)、Linux(RedHat)でxntpdを用いてタイムサーバーと時刻同期設定をしようとしています。タイムサーバのタイムゾーンはJSTなのですが、タイムクライアント側{Unix(Solaris・AIX)、Linux(RedHat)の各サーバー}のタイムゾーンはGMTになっています。この場合でも、タイムゾーンがサーバー・クライアントと同じ時同様に、ntp.confでタイムサーバの設定を実施後にxntpdを起動すればJSTのタイムサーバーから取得した時刻を自動的にGMTのタイムゾーンに変換してくれますか?又、タイムサーバーとタイムクライアント側のタイムゾーンが異なると同期が取れないという場合は、サーバー・クライアントのタイムゾーンが異なった状態のままで、どの様にすれば同期が取れる様になるか、その方法を教えて頂ければと思います。 宜しくお願いします。

  • 構造体を引数とする関数について

    関数に構造体を渡したいのですが、エラーが出て上手くいきません。 下のプログラムのように組んでいるのですが、どこが問題なのかご教授願いたいです。 もし、下記のプログラムのようなことができないのでしたら、代替案を提示してもらえると助かります。 環境はVC++です。よろしくお願いします。 struct DATA{ int x; char name[32]; }; void info(DATA *status[]); int main(void){ DATA student[3] = { { 1, "佐藤" }, { 2, "高橋" }, { 3, "田中" }, }; info(&student[]); return 0; } void info(DATA *status[]){ for (int i = 0; i < 3; i++){ printf("%d\n%s", status[i]->x, status[i]->name); } }

  • 構造体を使った時刻表(C)

    お世話になっております。 Cの勉強をしております、初心者です。 No1、現在の時刻を取得 No2、現在の「時」の配列を取得 No3、その中の現在の「分」に近い値を取得   (例)現在時刻が9時5分だとすると、下記時刻表内容であれば      9時配列中の10分を取得    8時→{4 13 19....}    9時→{5 10 16 22....};   10時→{5 16 29....}     No4ー1 現在時刻が59分だった場合や、その時間帯に列車が無かった      場合は、取得した「時」に+1し、次の「時」の配列を取得      *上記No4ー1に該当しない場合はNo5へ       No4ー2 上記 No3で取得した「分」を0(ゼロ)分にする No4ー3 上記No3に戻って、列車の時刻を取得できるまで      No3~No4ー3をループ No5 結果表示  No6 Enter押下  No7 No1に戻る 上記内容のフローがやっとできた段階で悩んでいまして、 サンプルソース等見せて頂ければ幸いです。 使ったことのない関数(time関数)や、構造体等をどこにどのように使って コーディングすればいいのか分かりません。 入門書を読みながら勉強をしているのですが、載っていない内容が多数ありまして。。。 最近もこちらで質問をし、みなさんから親切に教えて頂いてとてもよい勉強になりました。 長々と申し訳ありません。 ご教授願います。

  • VC6.0「WindowsNT Service Programming」について

    OKWebメンバー様 おせわになります。phooです WindowsNT4.0クライアント・サーバ上で動くVC6.0で サービスプログラムを開発しています。 端末のホスト名、端末の時刻、サーバの時刻をファイルに出力するのをサービス化するプログラムです VC6.0は初心者です。もちろんサービスプログラムも初めて作ります サービスプログラムの文献も探したのですがなかなかない状況で ソフトバンクの発行する本で 「WindowsNT Service Programming」 (Kevin Miller-著 豊田 孝-翻訳・監修) という本があると聞きました。 本屋にいったら現在、どこも売り切れ状態です。 ぜひ見てみたいと思っています。 手に入れる方法ありますか? また他の参考になる本、URL、豊田 孝さんのe-mailなど 教えてください。 宜しくお願いいたします。

  • イベントログに常にエラー(w32time)が出力されます。回避方法は??

    初心者の私に教えてください。 イベントログ(アプリケーションログ)に常にある一定時刻になると ソース名:w32time イベントID:11 分類:なし 種類:警告 コンピュータ名:(ホスト名) 説明:NTPサーバから応答がありませんでした というメッセージが出力されます。 以前、「net time」コマンドである元にするサーバのIPアドレスを設定しました。(これはLAN内ですので外のサーバにはアクセスしていません) しかし、以前このエラーログは消えません。 ちなみに開発環境であるため外にはつながっていません。 知っている方、教えてください。 よろしくお願いします。 OS:Windows2000 Server

  • 【C言語プログラミング】 time()関数について

    現在の時刻を表示させるプログラムをC言語で作成したいのですが、 書籍などを参考に以下のコーディングを行いました。 #include <stdio.h> #include <time.h> int main(void) { time_t timer; /* 現在の時刻を取得する */ timer = time(&timer); /* 現在の時刻を出力する */ printf("現在の時刻: "); printf("%s", ctime(&timer)); printf("です。\n"); return 0; } 質問内容は以下の通りです。 (1)「time_t timer;」とは、time_t型の変数timerを宣言し、   この変数にはtime()関数で取得した現在時刻の値が入る? (2)「timer = time(&timer);」に関して、time()関数で取得した値   を変数timerが指すアドレスの場所に入れる? その場合、   返り値を格納する変数timerに、time()関数の引数と同じtimerが   指定されているのはなぜ? (3)プログラムを実行すると以下の結果となる。(time.exeを実行)   C:\>time   現在の時刻: 12:52:07.61   新しい時刻を入力してください:   現在の時刻を表示した直後に「新しい時刻を入力して下さい」が   表示される。これはtime()関数の仕様どおり? 以上です。初歩的な質問で申し訳ございませんが、ご回答よろしく お願いいたします。

  • GMT時刻を任意のタイムゾーン時刻への変換方法

    Date型のGMT時刻をOSで設定したタイムゾーンに応じたローカル時刻に変換してくれる ことを期待して下記サンプル(SimpleDateFormatにTimeZoneを設定)を作成しました。 しかし、変換前後で時刻は変わりませんでした。 GMT時刻=2010/06/13 09:15:30 を作成。OSのタイムゾーンを日本に設定し、変換。 変換後の時刻は9時間後の2010/06/13 18:15:30を期待したのですが変換前後で変化は ありませんでした。下記がそのサンプルなのですが何か問題がありますでしょうか。 また、サンプルではOSからタイムゾーンを取得しているのですがブラウザのタイムゾーンを 取得することはできるのでしょうか。HTTP request headersにはタイムゾーン情報は無く JavaScriptを経由してとらないといけないという記述をどこかで見たことはあるのですが・・・。 【サンプル】 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; public class TimeZoneTest { private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2010); cal.set(Calendar.MONTH, 5); cal.set(Calendar.DAY_OF_MONTH, 13); cal.set(Calendar.HOUR_OF_DAY, 9); cal.set(Calendar.MINUTE, 15); cal.set(Calendar.SECOND, 30); Date todayDate = cal.getTime(); System.out.println("GMT時刻=" + formatter.format(todayDate).toUpperCase()); // GMT時刻=2010/06/13 09:15:30 String convertDate =convertTime(todayDate); // OSのTimeZoneId=Asia/Tokyo にて変換 System.out.println("ローカル時刻=" + convertDate); // ローカル時刻=2010/06/13 09:15:30 何故??? } public static String convertTime(Date todayDate) { String timeZoneId = TimeZone.getDefault().getID(); System.out.println("OSのTimeZoneId=" + timeZoneId); // OSのTimeZoneId=Asia/Tokyo formatter.setTimeZone(TimeZone.getTimeZone(timeZoneId)); return formatter.format(todayDate).toUpperCase(); } }

    • ベストアンサー
    • Java
  • CTime及び環境変数TZについて

    VC++5.0SP3で開発をしています。 アメリカ東部標準時間を取得するため、 _putenv("TZ=EST+5"); _tzset(); CTime Time = CTime::GetCurrentTime(); としてみましたが、取得できるのは日本の現在時刻です。 もちろん日本の時間から時差を計算して東部標準時間を求めることもできるのですが、TZを反映させ、GetCurrentTime()で現地時刻を得たいのです。 なぜ上記の方法で取得できないのでしょうか? ご存知の方ぜひご教示ください。