68user's page 掲示板

Prev< No. 2749〜2754> Next  [最新発言に戻る] [過去ログ一覧]
No. 2749 # 68user 2002/06/14 (金) 00:59:09
>>2748 木場
Locaiton: ヘッダに示されている URL を読み込めばよいです。

No. 2750 # だいすけ 2002/06/14 (金) 09:21:22
前回のことについての質問のつづきですが
僕のもっている参考書には掲載されてないのですが、
僕のもっている参考書が古いということでしょうか?

No. 2751 # バクモン 2002/06/14 (金) 09:39:50
>>2747 68user
ご回答ありがとうございます。
ただ、$statusは直前のコマンドのリターン値がセットされる
と認識しています。
Cシェルで直前のプロセスIDを取得するには、プロセスをバック
グラウンドで動かすようにして、その際に標準出力されるプロセス
IDをテキストファイルにおとして、grepなりをする方法しか
ないかな、と考えています。

そこで、以下を考えました。
ftp -n <<EOF &
open [IPアドレス]
user [ユーザ名] [パスワード]
binary
get [getするファイル名] [保存するファイル名]
close
quit
EOF

これを実行すると
[1] 10161
と言った形でプロセスIDが出力されます。
ただ、これをテキストファイルに落とす方法がわかりません。
多分、リダイレクトをするのだと思っているのですが、どこに
それをうめこめばいいのでしょうか?

No. 2752 # だいすけ 2002/06/14 (金) 09:50:04
それとも
C言語で新しくできた関数なのでしょうか?

No. 2753 # 68user 2002/06/14 (金) 12:46:53
>>2751 バクモン
ああ、そういう意味ですか。

tcsh だと $! で取れますが、csh では無理かもしれないですね。
jobs -l だと取れそうですが、どうでしょうか。

ただ、僕なら監視用プロセスを別に起こします。

例えば、
    mkdir /tmp/.ftp-lock
    ftp -n <<EOF
    open
    ..
    quit
    EOF
    rmdir /tmp/.ftp-lock
として、監視プロセスは n 秒前より過去に /tmp/.ftp-lock が作成されて
いたら、
    kill `ps -ef | grep get-file.sh | grep -v grep'
する、とか。

もちっと確実にするなら
    ln -s $$ /tmp/.ftp-pid
    ftp -n <<EOF
    open
としてプロセス番号を特定できるようにする方法もあります ($$ は sh の
プロセス番号なので、$$ の子プロセスを kill する必要がありますけど)。


>>2750 だいすけ
「何が」参考書に掲載されていないのですか? netdb.h? listen? accept?

ここらへんの関数については規格化されていません。よって、UNIX では
使えても Windows では関数そのものがなかったりします。

例えば
    「ANSI C マニュアル」
といった書名ならば、規格化された関数については網羅しているかもしれませんが、
規格外の関数については載っていなくても不思議ではありません。

No. 2754 # だいすけ 2002/06/14 (金) 14:10:21
5: #include <sys/types.h>
                6: #include <sys/socket.h>
                7: #include <sys/uio.h>
                8: #include <unistd.h>
                9: #include <sys/param.h>
            10: #include <netinet/in.h>
            11: #include <arpa/inet.h
これらが参考書に掲載されてないという意味だったのですが
manコマンドでしれべていくのですね。
どうもありがとうございます。

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