|
返事が遅くなって申し訳ないです。 ここ二日ほど色々あって何もできませんでした(^^; > FTPd が STOR 先のファイルをオープンし続けているということですね。 です。FTPd側の問題という可能性も無くはない気もしますが(但し、普通の クライアントを使用した場合は当然ながらうまく送信できます) まず、先程試してみた結果から。 どうやら原因は > 3. QUIT 送信の前に &read_response(COMMAND) が一つ足りてない だったようです。 これを入れたらまともに動いてくれるようになりました。 念のため、詳しい報告も > 1. 小さなファイル(数KB程度)でも同様でした > 2. 削っていません。 > 4. とりあえずまともに動くようにしようと即興で作っていたので$verbose=1の部分は 削ってました(^^; 本来はそういうときこそ細かくデバッグすべきなんでしょうけど・・・ > 5. 6. telnetやftpを使えば問題なく送信できます。 なお、1バイトずつ読んでいく方法ですが、 print DATA $buf || die "$!"; ではデータ的に0x30、つまり'0'のところでなぜかdieするようです。 print DATA $buf; のようにするとうまくいきました。 また、syswriteに関しては使ったことがないのであまりわかりませんが、 引数はsysreadと同様な形で取って、返り値は書き込んだバイト数のようです。 また、binmodeはsysopenでO_BINARYを指定しておけば不要かと思います。 ありがとうございました。 |
|
> はじめまして。ゲームでわからない事があったので、誰か教えて下さい。 ここにはゲームに詳しい人はあまりいないような気がします…。 > どうやら原因は >> 3. QUIT 送信の前に &read_response(COMMAND) が一つ足りてない > だったようです。 なるほど。ちょっと不親切な ftpd ですね (と僕は思う)。 > ではデータ的に0x30、つまり'0'のところでなぜかdieするようです。 なんででしょう。調べてみよう。 > また、binmodeはsysopenでO_BINARYを指定しておけば不要かと思います。 ああそうか。(Cでいうところの) open でも改行コード変換できるんですね。 > こんな変な仕様は、もしかして FreeBSD の ftpd だけかもしれない…。 > 調べておかねば。 これは Solaris の ftpd でも同じでした。変なの。 |
|
はじめまして、ハリーと申します。 実は今、Kシェルを作っているんですが、シェル内で exportコマンドを打って環境変数を変更しようとし てもできませんでした。普通にexportコマンドを打 ってもダメなんですか?それとも出来ないのですか? シェル初心者なので、よくわかりません。 よろしく、お願いします。 |
|
export HOGE=FUGA で できませんか。 |
|
はい。 シェルの中でenvを打つと変更した環境変数に変わっているのですが シェルが終ってもう一度、envを叩くと元に戻っています。 |
|
子プロセスでいくら環境変数をいじっても、親プロセスには 影響しません。これはどんなシェルでも同じです。 具体的に何をしたいのかがわからないのですが、 どうしてもやりたければ、eval を使うしかないです。 |