Re: [問題] Perl的seek 或sysseek想製造sparse file
※ 引述《jlovet (Want 2 see u no more)》之銘言:
: 如果是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
: 有人知道原因嗎?
: 謝謝
好有趣的問題,
我想應該是不同的open方法,檔案seek的index相對位置不同吧?
為什麼tell(INDEX)會是-1呀?
--
我是perl的初學者, 所以答覆還需請各位大大驗證
因為文章有點久又沒有回音就沒用推文了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.137.23
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章