揮発性のメモ2

http://d.hatena.ne.jp/iww/

hwclockのmanの不備

  • オプションなしで実行したときに何がおこなわれるかが書いていない
  • 出力の見方が書いていない
# hwclock --show
Thu May 13 20:56:34 2010  -0.000162 seconds
                             ↑これが何の時間かわからない

書いてないことより、こういうのに直面したとき「ソース読めよ」で済まされる文化がイヤ。


getoptであたりをつける

        /* Set option defaults */
        show = set = systohc = hctosys = adjust = noadjfile = FALSE;
...
        while ((c = getopt_long (argc, argv, "?hvVDarsuwAJSFf:", longopts, NULL)) != -1) {
...
                case 'r':
                        show = TRUE;
                        break;
...
        if (!(show | set | systohc | hctosys | adjust | getepoch | setepoch))
                show = 1; /* default to show */

デフォルトは--show

$ grep -n "%.6f seconds" hwclock.c
566:    printf(_("%s  %.6f seconds\n"), ctime_now, -(sync_duration));
546:display_time(const bool hclock_valid, const time_t systime,
547:             const double sync_duration) {
$ grep -C1 -n "display_time" hwclock.c
1095-        if (show) {
1096:          display_time(hclock_valid, hclocktime,
1097-                       time_diff(read_time, startup_time));

変数名的に、多分起動時刻と取得時刻の差分。