|
|
| Perl-Sensitive Sunglasses | |
| PerlMonks |
fsyncing directoriesby betterworld (Deacon) |
| on Apr 27, 2010 at 10:15 UTC ( #837072=perlquestion: print w/ replies, xml ) | Need Help?? |
|
betterworld has asked for the
wisdom of the Perl Monks concerning the following question:
Hi, according to the Linux man page of fsync(2): Calling fsync() does not necessarily ensure that the entry in the directory containing the file has also reached disk. For that an explicit fsync() on a file descriptor for the directory is also needed. So, how do we fsync directories in Perl? perldoc POSIX says that fsync() should be done with the sync method in IO::Handle. So I tried this with a directory:
This bails out with "fsync: Invalid argument". According to strace, no fsync syscall is even tried. I tried opendir too:
with the same result. On the other hand, an equivalent C program succeeds and properly calls fsync according to strace:
My question: What is the proper way to do fsync with directories in Perl? Or is this just a bug in IO::Handle? (All tests have been done on a current Debian Squeeze (testing) with perl 5.10.1-12.)
Back to
Seekers of Perl Wisdom
|
|
||||||||||||||||||||||||||||||||||||||