カレッヂ |
質問者 さち
投稿日 3/19(月) 10:20:45
いつも、お世話になってます また、つまずいてしまいました、、^_^; 以下のような、Perlスクリプトを書いた場合ですが 新しいデータの前に$newdetaと同じサイズ+1コの半角スペースが入ってしまいます 違うサーバで試した所、入りません、なぜだかわかりません (入るサーバーは、リムネットです) よろしくお願いします $mylock = '1'; $firu = './test.txt'; $newdeta = 'test'; if (!open(TXT, ">>$firu")) { print "オープンできません1"; exit(0); } if (!&lock_file(OUT)) { print "オープンできません2"; exit(0); } print TXT "$newdeta\n"; truncate(TXT, tell(TXT)); &unlock_file(TXT); close (TXT); print "content-type: text/html\n\n"; print "<html>\n<head>\n"; print "テスト"; print "</body>\n</html>\n\n"; exit(0); #-------ロックルーチン------------------# sub lock_file { local(*FILE) = @_; if ($mylock) {eval("flock(FILE, 2)"); if ($@) {return 0;}}return 1; } sub unlock_file { local(*FILE) = @_; if ($mylock) {eval("flock(FILE, 8)");} } ######以上です########### |
回答者 しあわせのツボ
[削除]
投稿日 3/19(月) 17:33:05
解決になるかどうかはわかりませんが、追記時にtruncateは必要ないと思います。 |
質問者 さち
[削除]
投稿日 3/19(月) 17:48:29
いつもありがとうございます ほんとです!! truncate(TXT, tell(TXT)); を、削除すると半角スペースが入らなくなりました ありがとう御座いました。 でも、なぜでしょうか? |
質問者 さち
[削除]
投稿日 3/19(月) 17:57:34
いやー、御免なさい ファイルを >>で開いているので truncate(TXT, tell(TXT)); は、まったく必要ないんですね ありがとう、御座いました。 |
返信(回答)する
Web裏技 |