[問題] Perl的seek 或sysseek想製造sparse file

看板Perl作者 (Want 2 see u no more)時間16年前 (2008/05/12 20:50), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
如果是C, 原本檔案size 0 seek到100的位置寫一些東西,那,檔案大小會是100+你寫的東西 然後生出來的檔案是一個sparse file #!/usr/bin/perl open INDEX,">>","my.idx"; seek INDEX,100,0 or die "seek error"; print tell INDEX; print INDEX "Hello World\n"; print tell INDEX; close(INDEX); 在Perl裡面,如果這樣寫,他只會把"Hello World\n"寫到檔案最前面 不會seek到100的位置,而且,用tell(INDEX) 兩個都顯示 -1 如果我把檔案的模式改成 #!/usr/bin/perl open INDEX,">","my.idx"; seek INDEX,100,0 or die "seek error"; print tell INDEX."\n"; print INDEX "Hello World\n"; print tell INDEX."\n"; close(INDEX); 這樣子seek會有用,但是因為 > 檔案就被truncate掉了 結果要用 open INDEX,"+<","my.idx"; 這樣子,檔案才可以seek,又不會被truncate 有人知道原因嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.102.254
文章代碼(AID): #18A3qECt (Perl)
文章代碼(AID): #18A3qECt (Perl)