[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/10 00:43 / Filesize : 262 KB / Number-of Response : 974
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Perl】ファイルロック(排他処理)について語ろう



1 名前:nobodyさん [02/06/23 10:18 ID:eY2l+Gw1]
どんな環境でも使えて、軽くて、頑丈なロックを考えようじゃありません

267 名前:nobodyさん mailto:sage [02/08/11 19:41 ID:???]
>>228
だから初めにflock効いてるのか調べてと言ってるのに
空振りしてるんだよ、それ
他のファイル編集部分は時間的にロック無しでも動いてるだけだよ多分

268 名前:nobodyさん mailto:sage [02/08/11 21:39 ID:???]
「多分」って便利な言葉
俺は断言してないよ、忙しかったしよって感じ

269 名前:nobodyさん mailto:age [02/08/14 01:12 ID:???]
www.kent-web.com/support/wforum.cgi?mode=allread&no=3986&page=0

排他処理とはちょっとズレるかもしれないが、これは立派にシステム上に矛盾が起きてるんだから、"バグ"ではないにしろ、立派な不具合だよな…
この不具合って、そんなに難しいことなのかな…
あたりまえのように、こういうのは想定しないかな?
Kentのスクリプトって、こういうところが馬鹿だよね。


270 名前:nobodyさん [02/08/14 01:45 ID:7AoVgCGe]
homepage1.nifty.com/glass/tom_neko/web/web_04.html#lockall
このまとめてロックっていいんですか?

271 名前:nobodyさん mailto:age [02/08/14 02:02 ID:???]
>>270
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < んな こたーない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |

272 名前:nobodyさん [02/08/14 02:05 ID:7AoVgCGe]
やっぱだめなんですか

273 名前:nobodyさん [02/08/14 02:14 ID:7AoVgCGe]
他にいい方法はありませんか?


274 名前:nobodyさん mailto:sage [02/08/14 04:31 ID:???]
ヅラを強力ロック

275 名前:nobodyさん [02/08/14 20:00 ID:DbQN4DsP]
監獄ロック



276 名前:nobodyさん mailto:sage [02/09/14 03:01 ID:???]
慎吾ママの

277 名前:nobodyさん [02/10/01 08:47 ID:OVvB7u9F]
kagino110.hp.infoseek.co.jp/sub18.htm
強力なロックだ

278 名前:nobodyさん mailto:sage [02/10/01 14:48 ID:???]
>>277
ううむ、強力すぎてアクセスさえもできないよ!

279 名前:名無しさん@お腹いっぱい。 mailto:sage [02/10/01 16:34 ID:???]
>>278
漏れは開きすぎちゃったよ。windows再起動した。
皆気をつけろよ。中のどれか開いたりしたら、国際電話だぞ。



280 名前:名無しさん@お腹いっぱい。 mailto:sage [02/10/04 08:00 ID:???]
ム板の「Perlについての質問箱」がruby基地外によって潰されました。
心ある人は、rubyスレにお礼参りしてください。


281 名前:nobodyさん mailto:sage [02/10/08 18:16 ID:???]
>>277
ちょっとワラタ

282 名前:nobodyさん [02/10/11 23:24 ID:0pBUR/gh]
read.cgiのファイルロック。これ最強

283 名前:nobodyさん mailto:sage [02/10/12 00:02 ID:???]
>>282
どういうロックやってるの? 知らないから教えてくれ。

284 名前:nobodyさん mailto:sage [02/10/15 14:15 ID:???]
ロックなんかしてないよ
2chの負荷でロックなんかしたら使い物にならん
壊れてたら読み直せばすむことだし

285 名前:nobodyさん [02/10/15 18:19 ID:jOp8uFKz]
bbs.cgiはどうやってるの?



286 名前:nobodyさん mailto:sage [02/10/16 11:23 ID:???]
日時とスレッドキーなんかを含めたファイル名で
一時ファイルを作って書き込み終わったら
subject.txtにリネーム
renameのアトミック性に頼ってるわけだな
datはふつうにflockしてるだけ

287 名前:nobodyさん mailto:  [02/10/22 13:32 ID:???]
わたし 思う。
ロック機能作る。
理論的 このスクリプト完璧。
でも どうテストする。
アルバイト100人雇う。
100人いっせいにアクセスする。
そんな 手間かけられない。 どうする。
2ちゃんねるに晒す。 それ怖い。 どうする。

288 名前: mailto:sage [02/10/22 16:25 ID:???]

・ 実験しないで本番に使う。
・ 覚悟して晒す。
・ 一年生になって友達100人つくる。


289 名前:nobodyさん mailto:sage [02/10/22 16:39 ID:???]
>>287
不覚藁

290 名前:nobodyさん mailto:sage [02/10/22 17:09 ID:???]
>>287
100 スレッド立ててアクセスしまくるにきまっとろーが。

291 名前:nobodyさん [02/10/27 19:23 ID:zFNcoqUs]
>>185
別人ですが、読み込んだものを加工してまた書き込む場合には
読み込むときにもロックが必要なんですね?
単に読み込んで、例えば表示したいだけで
加工もしない場合は必要ないんですよね。

292 名前:nobodyさん mailto:sage [02/10/27 21:19 ID:???]
ログ更新中に読み出したらおかしな内容になってしまう。ロックは必要。

293 名前:nobodyさん mailto:sage [02/10/27 22:41 ID:???]
テストスクリプトはlock握って数十秒眠るようにするわけだ。勿論タイムアウト値の調整は必要だ。
そうすりゃ一人でもテストできるだろ。

294 名前:nobodyさん mailto:sage [02/10/28 01:48 ID:???]
>>292
表示がおかしかったら読み直してもらうという
アプローチもありうる(read.cgiとか)。

295 名前:nobodyさん [02/10/29 01:24 ID:3RRgraL5]
flockについて、説明として例えば

flock(XX, 2)
書込中だから書込読込ロック、あとから来たら待つ。

とあるのですが、待つってどのくらい待つことが出来るのでしょう…?
上限や目安みたいなものはあるのでしょうか?



296 名前:nobodyさん mailto:sage [02/10/29 01:40 ID:???]
>>295
めっちゃ、待つでぇ

297 名前: ◆hMJAPH9PWA mailto:sage [02/10/29 09:26 ID:???]
>>295
実行者が我慢できなくなってkillするまで、ずっと待つよ。
で、それじゃこまるからってんでブロックしないモードがある。

use Fcntl qw(:flock);

flock FH, LOCK_EX | LOCK_NB or die "ロック失敗:$!";

298 名前:nobodyさん mailto:sage [02/10/29 09:56 ID:???]
もっともブロックしないで無限ループするくらいなら
ブロックして待ったほうがましだが

299 名前:nobodyさん mailto:age [02/11/03 16:56 ID:???]
大事件発生!

rename を使った完璧なファイルロックが完成してしまいました。

300 名前:nobodyさん mailto:sage [02/11/03 18:41 ID:???]
外出です

301 名前:nobodyさん [02/11/05 18:35 ID:5Ci8Aq1y]
んむ・・・。

302 名前:perlお勉強ちゅー [02/11/29 01:12 ID:vd7dmowT]
>>299
こんな感じかな、

my($process)=$$;
open (IN,"data.txt");
flock (IN,2);
open (OUT,">$process.tmp");
flock (OUT,2);

#hogehoge処理

close (IN);
close (OUT);
rename ("$process.tmp","data.txt");

不安なんですけど、これで良いのでしょうか?皆様。


303 名前:perlお勉強ちゅー mailto:sage [02/11/29 01:54 ID:???]
↑ open の戻り値チェックしてなかった。スマソ

304 名前:私も勉強中 mailto:sage [02/11/29 17:19 ID:???]
close (OUT);
から
rename ("$process.tmp","data.txt");
までの間に、他のプロセスが open (OUT,">$process.tmp") を
実行してしまい、$process.tmpが空になる可能性がある。

※open (OUT,">$process.tmp")した瞬間
$process.tmpのファイルサイズが0になるので、
次の flock (OUT,2) で止めても手後れ。

そんな気がするが、どうだろうか。

305 名前:304 mailto:sage [02/11/29 17:25 ID:???]
ごめん、間違えた。
tmpファイルの名前を毎回変えれば大丈夫か。



306 名前:nobodyさん mailto:sage [02/11/29 19:16 ID:???]
>>302
普通に、だめだね。
たとえば、Aプロセスがclose(OUT)まで行く、その直後にBプロセスが
open (IN,"data.txt");、でそのあとAプロセスがrename、Bプロセスは
普通に終了するけど、BのINは、Aが変更を加える前のdata.txtなので
Bがrenameした時点で、Aで加えた変更は破棄される。


307 名前:perlお勉強ちゅー mailto:sage [02/11/30 00:18 ID:???]
>>304 さん >>306 さん
ご解説して下さってありがとうございます。
close しなければ rename できないと勝手に
思い込んでいました。(やってみたらできました)
close したときに flock が解除されるのなら
rename 後に close しとけば別プロセスに割り
込まれることが減り、少しはましになるかな。


308 名前:nobodyさん mailto:sage [02/11/30 15:54 ID:???]
>>307
> rename 後に close
だめ。 AプロセスがINをopen、直後にBがINをopen、Aがflockして処理を
おえる、Bがflockを獲得して処理を終える。これでも、BのINはAが変更を
加える前のdata.txtなので、同様にAの変更が破棄される。

なおかつ、Win環境だとopen中のファイルのrenameはできなかったような?


309 名前:私も勉強中 mailto:sage [02/11/30 16:23 ID:???]
open (LOCK,"lock");
flock(LOCK,2);
open (IN,"data.txt");
open (OUT,"date.tmp");

#hogehoge処理

close (IN);
close (OUT);
rename ("date.tmp","data.txt");
close (LOCK);

INの前にflockするという方向で考えると、こうなるのか?
renameを使ったファイルロックと言っていいのかどうか分からないが。

310 名前:nobodyさん mailto:sage   [02/12/01 00:55 ID:???]
>>309
flock は、とりあえず >>1 の条件に反するので0点ってとこかな?

311 名前:perlお勉強ちゅー mailto:sage [02/12/01 14:43 ID:???]
>>308
またもやありがとうございます。
rename 後の close を Windows2000 で試したところ、
ご指摘のとおりエラーになりました。

open してから flock するまでに間が空くのがいけないと思い、
今度はフラグを立てるタイプを考えてみましたが、
フラグが立ってるか判別するまでに間が空く・・・
私には解決が難しいので人のソースでもっと勉強してみます。

312 名前:cron [02/12/02 11:25 ID:YojCbNB7]
ちょっと教えてほしいんだけど。。

Perlでロックしていてもcronでroot権限でrenameしてしまえるみたいなんだけど
Perlで複数のユーザーがどんどん書き加えていくファイルを何分か置きに
root権限で実行したい場合 問題の起こらない良い方法はありますか?

313 名前:nobodyさん mailto:sage [02/12/02 11:37 ID:???]
>>312
rootで何をしたいのか?

314 名前:cron [02/12/02 13:01 ID:YojCbNB7]
rootでしか実行できないコマンドを実行させるのに
そのコマンドのオプションはCGIで書き込ませたいのです。



315 名前:nobodyさん [02/12/02 14:26 ID:Vw2f1Ru9]
>>314
ネタだよなぁぁぁぁ、頼むからネタだと言ってくれー



316 名前:cron [02/12/02 15:25 ID:YojCbNB7]
なんで?おかしかった?ちゃんと教えてください

317 名前:☆☆☆☆☆ [02/12/02 15:47 ID:Z6bI7Cqn]
alink3.uic.to/user/ranran2.html

318 名前:nobodyさん mailto:sage [02/12/02 22:12 ID:???]
オプティミスティック
オプティミスティック
オプティミスティック
ペシミスティック
ペシミスティック
ペシミスティック

あー、言いにくい

319 名前:nobodyさん mailto:sage [02/12/06 00:00 ID:???]
>>316
あのさあ、rootって管理人のことだろ?
どこの鯖缶が赤の他人にroot権限使わせるってのよ。
やるんなら自鯖立ててやんなよ。

320 名前:Perlお勉強ちゅー mailto:sage [02/12/06 01:16 ID:???]
アトミックというのと、入出力の処理全体を包み込むというのが
ファイルの排他処理のキーワードらしいとわかってきました。(つもり)
フラグにするものがアトミックというのは、例えれば、
一組のトランプからはクラブの 1 は 1 枚しか引けないからこそ
目印になるということかな。親元になければ誰もカードを取れないものね。

気になったのは、アトミックがいくつかの使われ方をしている事で、
1 : 現在の ファイル I/O では HDD への読み書きは物理的には一つしかできないことに依存してフラグを立てる。
  (HDD の複数ヘッドがばらばらに動いてたらこわいです。)
2 : Perl 上で処理全体をアトミックにと言う場合は、「読み」「処理」「書き」を
   「1」に依存して、他人(他プロセス)に口をはさませずに行う。
・・・って感じかな。
# 見当違いでしたらつつしんで怒られます。とほ。
# お勉強中途報告でスマソ。

321 名前:cron [02/12/08 07:08 ID:tHo7Ijtw]
>>319
root権限で当然、自サバでするんだよ
cronのことしらないの?

322 名前:nobodyさん mailto:sage [02/12/08 08:24 ID:???]
>>321
cronで動かすプログラムとWebプログラムでのファイルのロックが問題なの?
普通のファイルロックと同じようにやればいいじゃん。

323 名前:319 mailto:sage [02/12/08 11:44 ID:???]
>>321
自鯖でやるなんて一言も言わなかったじゃないか。
そもそも、自分が鯖缶だとも言ってない。

cronでCGI動かすようにすれば? んで、CGIの方でロックをきちんとすればいい。

324 名前:nobodyさん mailto:sage   [02/12/08 11:44 ID:???]
やればいいじゃん。

325 名前:nobodyさん mailto:sage [02/12/08 12:07 ID:???]
>>323
cronでCGI動かすなんてアホな発想はどこから出てくるんだ?



326 名前:nobodyさん mailto:sage   [02/12/08 12:11 ID:???]
出てくるんだ?

327 名前:nobodyさん mailto:sage [02/12/08 16:05 ID:???]
お前らいいかげんにネタだと気付け。
> Perlで複数のユーザーがどんどん書き加えていくファイルを何分か置きに
> root権限で実行したい場合 問題の起こらない良い方法はありますか?
「複数のユーザが書き換えるファイル」を「root権限で実行」する馬鹿が本当にいると思ってるのか?

328 名前:山崎渉 mailto:(^^)sage [03/01/15 13:42 ID:???]
(^^)

329 名前:nobodyさん [03/01/17 10:53 ID:t5G3aPWp]
open(ABC "<$hoge") || &error("error");
とかよくやりますが
close(ABC);
閉じるときも
close(ABC) || &error("error");
とやるべきでしょうか?
closeに失敗することあるんでしょうか?

330 名前:nobodyさん [03/01/17 12:29 ID:+SxK8G04]
>>329
非常にいい質問だね。
さ、誰か答えてやんなさい。

331 名前:nobodyさん mailto:sage [03/01/17 13:58 ID:???]
while (!close(ABC)) {}

332 名前:nobodyさん mailto:sage [03/01/18 00:49 ID:???]
perl -e 'close(STDIN); close(STDIN) || die $!'
それがどうファイルロックと関係あるのかと

333 名前:nobodyさん mailto:sage [03/01/18 14:04 ID:???]
ファイルロックしている最中にcloseに失敗してエラー処理をせずに
処理が終了されて、ロック解除できずロックファイルが残る場合。

334 名前:nobodyさん mailto:sage [03/01/18 17:36 ID:???]
Apacheのアクセスログなんか尋常じゃないほどの書き込みがあるが
どうして上手くいっているのだろうか?

335 名前:nobodyさん mailto:sage [03/01/18 18:30 ID:???]
>>334
O_APPEND



336 名前:nobodyさん mailto:sage [03/01/18 20:35 ID:???]
>>333
エラー処理の中にバグを入れるのは本末転倒だろうが。

337 名前:nobodyさん mailto:sage [03/01/18 20:51 ID:???]
>>335
ファイルの追加書き込みって上手く使うとflockないシステムでも上手くロックをかけれるかも

338 名前:nobodyさん mailto:sage [03/01/19 23:58 ID:???]
>>337
ロックじゃねーよ。

339 名前:世直し一揆 [03/01/30 10:23 ID:EZ4VgkoJ]
<血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙され
るな!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い)
●他人に異常に干渉し、しかも好戦的・ファイト満々(キモイ、自己中心)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようと
する(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際に
はたいてい、内面的・実質的に負けている)
●本音は、ものすごく幼稚で倫理意識が異常に低い(人にばれさえしなければOK)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本
の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く
、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、人の目を異常に気にする(「世間体命」、「〜みたい
」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度
も言ってキモイ)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は
個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬
する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男
前やのに、なんでや!(あの野郎の足を引っ張ってやる!!)」)

340 名前:nobodyさん [03/01/30 12:26 ID:RKDiglA0]
最近運用してるページでロックがよく残る、書き込みファイルがロックしてるにもかかわらず
壊れるという現象が頻発して困ります。
なにか他のいい方法を探しているのですが
書き込み待ちテンプを作るやり方があると聞いたのですが
教えてください。


341 名前:nobodyさん mailto:sage [03/01/30 13:08 ID:???]
>>340
マジレス
お前のロックの仕方が変なだけ

342 名前:nobodyさん [03/01/31 04:05 ID:QdG4FrQH]
画像貼り付け掲示板なのですが
どのようにロックかけるのがのぞましいのでしょうか?

343 名前:nobodyさん [03/01/31 07:27 ID:K4VaGHSu]
いいサイトだ♪homepage3.nifty.com/digikei/ten.html

344 名前:nobodyさん mailto:sage [03/01/31 20:55 ID:???]
安全なようにロックをかけるのが望ましい

345 名前:nobodyさん [03/02/01 03:10 ID:6WMjWs0+]

                 ∧∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                (,,゚Д゚)< みんなで視姦汁!
              ./  |   \________
      .______(___/_____
       .|03. 2. 2. / AHE |
       .|________________|
      /\               \
    /    \ 2003年2月2日 \
  / Λ_Λ \   .13:00…   \
/__( ´д`)_\______________\
|       |ゲ.|    │               |
|       |.ロ |    │  梅田丸ビルの  .|
|       |ゲ.|    │  電光掲示板に… .|
|       |.ロ |    │  ..『(゚д゚)ウマー』   |
|γ__  |ゲ.|    │ ̄\       / ̄|
|    \ |.ロ |    │    \_________/    |
|       |ゲ.|    │               │
|____|__||_|)|.ロ |    │ コ ッ プ 1 杯 .│
|□━□ )     │ . ( 約 200ml ) で  |
|  J  |) / ̄ ̄  |. 1 日 分 の * .|
| ∀ ノ < ヒヒヒヒヒ  | 黄色ブドウ状球菌  |
|  - ′ . \____ |   2 分  の 1  |
|  )          │               │
|/.  製 造    ..|               │
| . 逝印大阪工場 . |       500 ml     |
|____________________|______________|

life2.2ch.net/test/read.cgi/offreg/1043075025/l50



346 名前:nobodyさん mailto:sage [03/02/01 03:23 ID:???]
なんだ、騙されたスレじゃないのか

347 名前:nobodyさん mailto:sage [03/02/19 23:23 ID:???]
よくチャックがあけっばなしと言われます

348 名前:山崎渉 mailto:(^^) [03/03/13 17:22 ID:???]
(^^)

349 名前:nobodyさん mailto:sage [03/03/13 22:46 ID:???]
>>329
ログの閉じミスなんて気にしなくても。。。

350 名前:nobodyさん mailto:sage [03/03/22 18:02 ID:???]
どうせさほどアクセスが多いところじゃないんだろうから、mkdirと強制ロック解除のパターンでいいじゃん。

351 名前:nobodyさん [03/04/17 00:56 ID:s+I4ylgd]
Perlメモの
www.din.or.jp/~ohzaki/perl.htm#File_Lock
を使おうと思ったんですが、

なにげにperl初心者なんで、その使い方がわかりません。
perlメモには、
$lfh = my_flock() or die 'Busy!';

# アンロックする
my_funlock($lfh);

$lfh にはなにをいれれればいいのでしょう?ファイル名?ファイルハンドル?



352 名前:nobodyさん mailto:sage [03/04/17 02:26 ID:???]
なにも

353 名前:山崎渉 mailto:(^^) [03/04/17 11:58 ID:???]
(^^)

354 名前:351 [03/04/17 22:16 ID:PczzXVDV]
>>352
どういうこと?

355 名前:佐々木健介 mailto:sage [03/04/17 22:16 ID:???]
     ______
    /_      |
    /. \ ̄ ̄ ̄ ̄|
  /  /  ― ― |
  |  /    -  - |
  ||| (5      > |
 | | |     ┏━┓|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | |     ┃─┃|  < こんなサイトを見つけた
|| | | |  \ ┃  ┃/    \  正直、スマンカッタ
| || | |    ̄         \_________
freeweb2.kakiko.com/tama/



356 名前:nobodyさん mailto:sage [03/04/17 22:26 ID:???]
>>354
なにげにが気に入らないから教えない

357 名前:bloom [03/04/17 22:56 ID:ahUYqmP+]
www2.leverage.jp/start/

358 名前:nobodyさん mailto:  [03/04/17 22:57 ID:???]
なんでDB使わないの?

359 名前:あぼーん mailto:sage [03/04/17 23:23 ID:???]
 ( ・∀・)/< こんなのみつけたっち♪ 
www.japan.pinkserver.com/yamazaki/saitama/hankaku06.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku05.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku03.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku04.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku01.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku02.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku09.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku10.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku07.html
www.japan.pinkserver.com/yamazaki/saitama/hankaku08.html

360 名前:nobodyさん mailto:sage [03/04/18 23:20 ID:???]
>>358
一回使ったらまた集めなきゃならないだろ。

361 名前:nobodyさん [03/04/19 13:00 ID:EJZQKwDz]
homepage1.nifty.com/glass/tom_neko/web/web_04.html
に載ってる「ファイルを上書きする場合」(↓)
open(OUT, "+< $datafile"); # 読み書きモードで開く
flock(OUT, 2);         # ロック確認。ロック
seek(OUT, 0, 0);       # ファイルポインタを先頭にセット
print OUT "$data\n";    # 書き込む
truncate(OUT, tell(OUT)); # ファイルサイズを書き込んだサイズにする
close(OUT);          # closeすれば自動でロック解除

を参考にして、
「(1)ファイルの中身(データ)を読み込んで、読み込んだデータを加工して、
(3)再度同じファイルにデータを格納する場合」を考えたんだけど、
↓で特に問題ないでしょうか?

$datafile = "data.txt";
open(OUT, "+< $datafile");       # 読み書きモードで開く
flock(OUT, 2);               # ロック確認。ロック
@Array_data = <OUT>;          # ★追加:(1)ファイルの中身を読み込んで
foreach $values (@Array_data){
  #@Array_dataをいろいろ加工;    # ★追加:(2)読み込んだデータを加工
  chomp $values;
  $values = $values * 2;
  push (@New_Array_data,"$values\n");
}
seek(OUT, 0, 0);             # ファイルポインタを先頭にセット
print OUT @New_Array_data;     # ●変更:(3)再度同じファイルにデータを格納
truncate(OUT, tell(OUT));       # ファイルサイズを書き込んだサイズにする
close(OUT);                # closeすれば自動でロック解除




362 名前:nobodyさん mailto:sage [03/04/19 15:13 ID:???]
>>361
うん、これで問題ないね

363 名前:nobodyさん mailto:sage [03/04/19 19:05 ID:???]
> ★追加:(2)読み込んだデータを加工
この最中に逝っちゃっても大丈夫?

364 名前:nobodyさん mailto:sage [03/04/19 19:45 ID:???]
>>363
途中でプロセスが死んだらどんなことしたって壊れるときは壊れる

365 名前:山崎渉 mailto:(^^)sage [03/04/20 06:00 ID:???]
   ∧_∧
  (  ^^ )< ぬるぽ(^^)



366 名前:: [03/04/21 18:06 ID:J93Hac+3]
☆^〜^★ 50音順で探せて楽して得する
sagatoku.fc2web.com/
   あなたの探し物きっとみつかるよ☆^〜^★


367 名前:nobodyさん mailto:sage [03/04/21 21:46 ID:???]
>>364
駄目じゃん






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef