68user's page 掲示板

Prev< No. 1381〜1386> Next  [最新発言に戻る] [過去ログ一覧]
No. 1381 # 68user 2000/11/15 (水) 20:30:33
> gcc -c share_test.cc
> CC test_gcc.cc -L. -ltestshare
ああ、CC って typo かと思っていたら、C++ なのか…。
# C++ は完璧に忘れたなぁ。Hello world さえ作れないです。

おそらく gcc と CC でクラス/メソッドのシンボル名の
命名規則が違うのが理由だとは思うのですが、意図的に
gcc と Sun の CC を混在して使っているのですか?
gcc (g++) か CC に統一できない理由があるので、調査
しているということですよね?

もしそうなら、すいませんがわかりません。gcc の
オプションで指定できるのかもしれませんが…。

> なんか"<"、">"の部分だけが読み込めてない感じです。
もしかして CGI として動かして HTML を吐いていませんか?
んでもって < > & を (&lt; &gt; &amp; に変換せず) その
まま出力していたりしませんか? 根拠は以下の通り。

1. received の <〜> も出力されていない
          for ; Wed, 15 Nov 2000 17:26:03 +0900 (JST)
          for ; Wed, 15 Nov 2000 17:20:05 +0900
2. でも Message-ID は出力されている。
          Message-ID: <000501c04ede$6249e4d0$5400a8c0@kimura>
      タグは英文字から始まる。数字が先頭にくることはない。

> が、一般的 or perlの方が効率的なのでしょうか?
僕なら間違いなく perl でやりますが、まぁそれはお好きな方で。
ちなみに sh からだと
    set `perl -e 'print scalar(localtime(time()-60*60*24))."\n"'`
です。

No. 1382 # rosegarden 2000/11/15 (水) 23:14:33
> % date -v-1d
> で1日前の日付が得られます。ただし、Solaris などの
> date には -v オプションはないので、sh でやるなら
> perl などを呼び出すのがいいでしょう。

このオプションは知りませんでした勉強になりました。

> Solaris環境なのでシェルで作成するのはやめます。

あきらめるのは早いです。

#!/bin/sh

LANG=C
set `date`
year=$6
mon=$2
date=$3

if [ `expr $year % 4` = "0" ] ; then
        is_leap="YES"
fi
if [ `expr $year % 100` = "0" ] ; then
        is_leap="NO"
fi
if [ `expr $year % 400` = "0" ] ; then
        is_leap="YES"
fi

date=`expr $date - 1`

if [ "$date" = "0" ]
then
        case $mon in
                Jan)
                        mon="Dec"
                        date=31
                        ;;
                Feb)
                        mon="Jan"
                        date=31
                        ;;
                Mar)
                        mon='Feb'
                        if [ "$is_leap" = "YES" ]; then
                                date=29
                        else
                                date=28
                        fi
                        ;;
                Apr)
                        mon="Mar"
                        date=31
                        ;;
                        # 以下略
                        *)
                        ;;
        esac
fi

echo The yesterday is $mon $date.

なんていう面白味も芸もないスクリプトなら Solaris でも動くんじゃないかと
思いますよ。

もっとも、

> 作成したいものは、lastcommで前日のログ履歴を出し、管理者宛にメールを
> 送るというものなのですが早速つまずいてしまいました。

この用途なら、日付の計算は不要で前々日分までの lastcomm のログの
バックアップをとっておいて、前日分との差分を diff でとるという方法もあります。
(ただし、lastcomm のログなので、GB 単位になってもおかしくないのですが。)
FreeBSD なんかのセキュリティチェックは全部前日分までのバックアップと
本日分のログの差分抽出でやっていますね。

# また長くなりすみません。

No. 1383 # 68user 2000/11/16 (木) 01:12:04
> あきらめるのは早いです。
うーん、ごもっとも。恥ずかしながらこういう
方法には全く気づきませんでした。

No. 1384 # book 2000/11/16 (木) 09:22:00
68userさん、ご教授ありがとうございました。

gccのオプション調べてみます。

No. 1385 # はぴお [E-mail] 2000/11/16 (木) 17:15:35
こんにちは、はぴおです。
68userさんレスありがとうございました。
非常に恥ずかしい話ですが、68userさんのおっしゃる通りです。
何で気が付かなかったんだろうか???
ありがとうございました!
HTTP、SMTP、POP3ができたので、今度はFTPをやろうかと
思います。

No. 1386 # CoreFighter 2000/11/18 (土) 00:47:46
お世話になります。
実は今、C言語でCGIの勉強をしているのですけど、
CGIのデバッグってどうやるんでしょうか?

もしかして、動作確認はいちいちブラウザで確認するしかないのですか?
つ、つらい‥

なにか、効率的なデバッグ方法を知っていらしたら
教えて下さい。お願いします。

Prev< No. 1381〜1386> Next  [最新発言に戻る] [過去ログ一覧]