68user's page 掲示板

Prev< No. 4033〜4038> Next  [最新発言に戻る] [過去ログ一覧]
No. 4033 # 上田 [E-mail] 2004/11/03 (水) 12:09:01
>>4032 68user

68userさん、ありがとうございます。
教えていただいた $SIG{CHLD} = sub { wait }; ですが、不勉強なもので、記述する場所に若干の不安が残っています。
一応、43行目と44行目の間に記述したところ、次の3つは達成できました(目的は達成できました)。
・サーバ機能
・複数同時アクセス
・defunctの消去
もし記述する場所が間違っていれば、またご連絡いただけないでしょうか?

      36: # forkで子プロセスを生成
      37: if ( $pid = fork() ){
      38: # こちらは親プロセス
      39: print "親プロセス($$): 引続きポート $port を見張ります。\n";
      40: print "親プロセス($$): クライアントの相手はプロセス $pid が行います。\n";
      41:
      42: # 親プロセスはソケットをクローズ
      43: close(CLIENT);

                              $SIG{CHLD} = sub { wait };  #←←←ここに追加しました。

      44: next;

以上、ありがとうございました。
今後ともよろしくお願いいたします。

上田

No. 4034 # noza [E-mail] 2004/11/04 (木) 16:21:49
Cシェルの中で、sqlplusに接続してsqlを実行して結果を表示したいのですが、どのようにすればよいですか?
皆さん、教えてください。よろしくお願いします。

No. 4035 # アトヌル 2004/11/04 (木) 19:26:06
始めまして。
sedコマンドで、改行を含む文字列へ変換したいのですが、どのようにすればいいですか?

abcde
------
fgh
ijk

たとえば、abcdeをfgh(改行)ijkとしたい場合、

sed "s/abcde/fghijk/g" file1 > file2
これでは改行無しで置換されてしまいます。
\n,\r\nなど埋め込んでみましたがうまくいきませんでした。

皆さん教えてください、宜しくお願いします。

No. 4036 # 2004/11/04 (木) 19:34:08
Cシェルの中で、コマンドオプションの有無を判断するのには、どのようにIF文を書けば良いですか?
教えてください、よろしくお願いします。

No. 4037 # zsh 2004/11/06 (土) 19:36:04
>>4034 noza
ヒアドキュメントを使うとできた筈ですが
sqlplusの引数でユーザ名とパスワードが必要になるため
お勧めしません。

>>4035 アトヌル
sedでは確か無理だったと思います。
(嘘ついてたらごめんなさい。)

>>4036
コマンドオプションって何ですか?引数の事?

No. 4038 # 68user 2004/11/08 (月) 13:49:29
>>4033 上田
fork の前にシグナルハンドラを設定するのが普通かと思います。でないと、
設定前にシグナルが飛んできたら困りますので。

ただしシグナルハンドラは子プロセスに引き継がれるので、fork 後に
シグナルハンドラを戻すなどの対処が必要です (この例では子プロセスが
SIGCHLD を受けることはないので、どちらでも構わないのですが)。

>>4037 zsh
> ヒアドキュメントを使うとできた筈ですが
ヒアドキュメントでもいいし、別ファイルにしておいて
      sqlplus $user/$pass @hoge.sql
としてもよいです。

> sqlplusの引数でユーザ名とパスワードが必要になるためお勧めしません。
これはまぁいいんじゃないですかね。Perl で Oracle に接続しても
スクリプト中にパスワードを書きますし、Pro*C でもバイナリを
strings すればわかりますし。

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