• ベストアンサー

c言語でntpdateコマンドにあたる関数

Linuxにおいてc言語でntpdateコマンドの機能にあたる関数を探しています。 stepモードで指定したIPアドレスのNTPサーバーから時刻を取得をし、パソコンの時刻を書き換える機能を求めています。 本来自分で調べるべきなのですが生憎調べる時間がないためこちらで質問させていただきました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.4

個人的には#1さんのをおすすめしますが、どうしても関数で欲しい!ということであれば libntpというライブラリを使うのはどうでしょう? 以下のURLからtarをダウンロード http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p5.tar.gz 圧縮ファイルを展開して configure; make とするとlibntp/libntp.aが得られますので、これをあなたのプログラムにリンクしましょう。 たちどころにntp関連関数が使えるようになります。 いかがでしょう。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

そのものずばりの関数は標準にはありません。自作するなりどっかから持ってくるなりしないと。 とりあえず、ntpdateのソースを見たら? http://www.linuxfromscratch.org/blfs/view/6.3/basicnet/ntp.html

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

cにはi/oが無いのでそのような関数は有りません。 大体OSと言語で対応を求めること自体おかしいとは思わないのかな。 このレベルでは時間がないのなら諦めろ。

全文を見る
すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4858/10274)
回答No.1

時間が無いと言うことなので、簡単な手段で。 system("ntpdate ipアドレス");

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ntpdateコマンドについて

    Linux7.2サーバで時刻修正コマンド /usr/sbin/ntpdate time-nw.nist.gov と入力すると 20 Nov 10:04:54 ntpdate[22117]: no server suitable for synchronization found このようなエラーがでます。 ntpサーバを他のものに変えても同じ結果になります。 正常に動作させるには、どうしたらよいでしょうか?

  • ntpdateで時刻調整

    RedHat Linux ESを使用しています。 ntpdate -u -s eric.nc.u-tokyo.ac.jp というように、ntpdateコマンドで時刻調整をしたところ、時刻が2時間進んでしまいました。 ntpサーバの時刻があってないのかと思ったのですが 他のマシン(RedHat Linux 8.0)では、全く問題ありませんでした。 OSのバージョンによるバグなのでしょうか? 何か参考になる情報などありましたら、教えていただきたいと思います。

  • ntpdate: デバッグモードでしか応答が取れません

    ■1■あるntpサーバに対して下記を実行すると、 % ntpdate 133.xxx.x.xxx Looking for host 133.xxx.x.xxx and service ntp host found : xxx.xxx.co.jp 7 Apr 13:29:46 ntpdate[11129]: no server suitable for synchronization found とエラーとなるのですが、 ■2■デバッグ(?)オプションを付けると、 % ntpdate -d 133.xxx.x.xxx 7 Apr 13:46:25 ntpdate[11146]: ntpdate 4.2.0@1.1161-r Fri Apr 7 11:35:09 JST 2006 (1) Looking for host 133.xxx.x.xxx and service ntp host found : xxx.xxx.co.jp transmit(133.xxx.x.xxx) receive(133.xxx.x.xxx) : delay 0.03502, dispersion 0.00020 offset -525.818942 7 Apr 13:57:03 ntpdate[11149]: step time server 133.xxx.x.xxx offset -525.818942 sec と、応答は返ってくるようです。 デバッグモードではなく、正式にntpサーバの時刻をこのLinuxサーバに 設定したいのですが、上記の状況を回避するには、どのようにすれば良いでしょうか。 よろしくお願いします。 ■補足■ ・Red Hat Linux release 8.0 を使っています。 ・ntpdは登録していないです 以上よろしくお願いします。

  • ntpdateで時刻同期すると一日ずれます。

    Linuxでntpdateで時刻同期すると一日ずれます。 # date 2010年 11月 11日 木曜日 09:34:21 JST 今日は11月10日です。 # date -s 20101110 2010年 11月 10日 水曜日 00:00:00 JST #ntpdate -b ntp.nict.jp 11 Nov 09:35:24 ntpdate[22948]: the NTP socket is in use, exiting # date 2010年 11月 11日 木曜日 09:35:28 JST なぜか11日にもどされます。 # hwclock --show # 何も表示されません。 # cat /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=true ARC=false 他のサーバにつないでも同様でした。 # date -s 20101110 2010年 11月 10日 水曜日 00:00:00 JST #ntpdate -b eric.nc.u-tokyo.ac.jp 11 Nov 12:30:03 ntpdate[23329]: step time server 130.69.251.23 offset -86403.273202 sec # ntpdate -b 11 Nov 12:31:01 ntpdate[23331]: no servers can be used, exiting # ntpdate -b ntp.sut.ac.jp 11 Nov 12:31:13 ntpdate[23332]: step time server 133.31.180.6 offset -86403.269931 sec # ntpdate -s ntp.sut.ac.jp # date 2010年 11月 11日 木曜日 12:31:33 ntpはもちろんはいっています。 #rpm -qa ntp ntp-4.2.2p1-9.el5.centos.2.1 よろしければアドバイスをいただけないでしょうか?

  • NTP時刻ずれの確認方法について

    Linux(CentOS)に2つのネットワークインタフェース(eth0,eth1)を設けて、eth0では ntpdate -b "NTPサーバAのアドレス"として、とあるネットワーク網のNTPサーバAと時刻同期をさせ、その後に、eth1で別のネットワーク網にあるNTPサーバとの時刻ずれを確認したいと考えています。 その際eth1側で、時刻同期を行わずに、時刻ずれだけを確認できるコマンド(ntpdateのオプション?)というものはあるでしょうか? 教えていただけないでしょうか? よろしくお願いいたします。

  • NTPの同期ができない

    いつもお世話になってます。 NTP Serverとして、WindowsXP(Win2008も同様の問題が発生)があり、 NTP Clinentとして、Solaris10、RedHat Linux5.5(AS4.6も同様)が存在する環境があります。 この環境において、Solaris10はNTPServerと同期がとれるのに、 Linuxは、同期されないと言う状態が続いております。 Solaris Clientから参照できているので、Windowsは正常にNTP Serverになっていると 思っているのですが、なぜLinux Clientから参照できなのかが不明です。 Server/Clientどちらに問題があるのかも分かっていない状態なのですが、 何か情報があれば教えてください。お願いします。 * LinuxでNTPサービスを停止し、ntpdate windows を実行すると時刻同期が  できることが確認できています。  ただ、Linuxでは通常時、アプリケーションが動作している為、ntpdateによる時刻同期が  できないために、困っています。 -設定- Windows \W32Time\TimeProviders\NtpServer → 1 xxxx\W32Time\Config\AnnounceFlags → 5 123 UDPポートの開放 Linux /etc/ntp.conf server WindowsXPのIP driftfile /var/lib/ntp/drift Solaris /etc/inet/ntp.conf multicastclient 224.0.1.1 server WindowsXPのIP

  • NTPサーバアドレスについて

    BUFFALOのLinkStaionという外付けハードディスクの基本設定で、時刻の自動調整で、NTP機能をONにしてNTPサーバアドレスのIPアドレスを設定しなければいけないのですが、意味がわからず設定できません。ヘルプに、(NTPサーバアドレス NTPサーバのアドレスを指定します。 「NTP機能」を「使用する」に設定した場合、必ず指定する必要があります。ここで指定したNTPサーバ対し、設定完了直後と、LinkStation起動時、及び「同期時刻」毎にアクセスし、時刻を自動的に調整します。 また、NTPサーバのアドレスはIPアドレスで指定する必要があります。IPアドレスは「XXX.XXX.XXX.XXX」(Xは数字)の形式で入力して下さい。) と、ありますが、どのようにしたらいいですか?教えて下さい。

  • dosコマンドで時刻修正

    net time コマンドの具体的な使い方がわからないです。 東北大の時刻サーバーでためしたところ、だめでした。 net time \\ntp.tohoku.ac.jp /set 正しいDOSコマンドの記述はなんですか。 ntpサーバー一覧です。 http://miyahost.no-ip.com/FreeSoft/NTPserver/ 桜時計とか使えばいいのですが、DOSでのほうほうも知りたいです。

  • ntpでrestrictのネットワーク指定が効かない

    Red Hat Enterprise Linux ES v.3にて RPMに入っているntp-4.1.2-4を使用して、この サーバを内部のNTPサーバとしています。 /etc/ntp.confの中で 許可するネットワーク指定で restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap と記述しているのですが、このネットワークアドレスの NTPクライアントからなぜか時刻を合わす事ができませんでした。(クライアントもntpdを使用しています) もしやと思い、restrict 192.168.1.2 notrust nomodify notrap とIPアドレス指定をしたら、NTPクライアントから時刻 合わせを行う事ができました。 留意事項  ・このサーバと外部の公共NTPサーバの時刻合わせは   正常に完了している。  ・/etc/ntp.confの変更後、ntpdをrestartさせて   いますが、NTPサーバの時刻が十分安定してから   NTPクライアントは合わせに行っています。  ・NTPサーバとNTPクライアントの時刻は大きくずれて   いると合わせないと聞いた事があるので、実行前に   1秒単位の誤差しかないよう、dateコマンドで合わ   せました。 ネットワーク指定が効かないと、NTPクライアントの数 分記述を入れなければならないので避けたいのです。 原因と回避方法を教えてください。

  • xntpdの時刻修正モード確認方法

    Solaris9でxntpdを動作させて時刻同期させています。 xntpdの時刻修正モードには、すぐに時刻同期を実施する「step」モードと徐々に時刻同期を実施する「slew」モードがあるようですが、モード確認はどのように実施すればよいでしょうか。(「slew」モードであることを確認したいです。) syslogに出力させたメッセージで「slew」が含まれているのは以下のものだけで、しかも修正モードとは関係なく出るようです。 Oct 14 10:15:33 dfm xntpd[287]: [ID 301315 daemon.notice] tickadj = 5, tick = 10000, tvu_maxslew = 495, est. hz = 100 以下に/etc/inet/ntp.confファイルの内容を示します。 server 192.168.×××.××× fudge 127.127.0.1 driftfile /var/ntp/ntp.drift slewalways yes disable pll ※「slew」モードで動作させることを意図した設定です。 また、「man xntpd」コマンドでは表示されませんが、わざと間違えた形式を指定してUsageを表示させるとSolaris9のxnptdには、「-x」オプションがあるようです。フリーのntp-4.2.0などでは、「-x」オプションで「slew」モードを指定するようですが、xntpdでも同様なのでしょうか? だとしたら「-x」オプションの役割を確認できる文書についても知りたいです。 コマンドやメッセージから効率的に時刻修正モードを判定できる方法を教えてください。よろしくお願いします。

このQ&Aのポイント
  • 「にゃんこ大戦争 ぬいぐるみ ネコ (白)」は、圧縮された状態で配送されます。しかし、その大きさがわからないため、クリスマスプレゼントの包装をどうしようか迷っています。
  • 製品サイズは約W250×H200×D180mm+50(耳)+30(足)mmですが、実際に商品が届く際には圧縮された状態で送られてきます。
  • 購入した商品がどのくらいの大きさになるのか気になる方は、事前に確認しておくことをおすすめします。クリスマスプレゼントの包装をする際にも、大切なポイントです。
回答を見る