Brian Szymanski > File-Sync-0.11 > File::Sync

Download:
File-Sync-0.11.tar.gz

Dependencies

Annotate this POD

Related Modules

HTTP::Response
DBD::Pg
Benchmark::Timer
Math::Random::MT
Digest::MD5
Archive::Tar
LWP::UserAgent
Test::More
Compress::Zlib
HTML::Parser
more...
By perlmonks.org

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.11   Source  

NAME ^

File::Sync - Perl access to fsync() and sync() function calls

SYNOPSIS ^

  use File::Sync qw(fsync sync);
  sync();
  fsync(\*FILEHANDLE) or die "fsync: $!";
  # and if fdatasync() is available on your system:
  fdatasync($fh) or die "fdatasync: $!";

  use File::Sync qw(fsync);
  use FileHandle;
  $fh = new FileHandle("> /tmp/foo") 
      or die "new FileHandle: $!";
  ...
  $fh->fsync() or die "fsync: $!";

DESCRIPTION ^

The fsync() function takes a Perl file handle as its only argument, and passes its fileno() to the C function fsync(). It returns undef on failure, or true on success. fdatasync() is identical in return value, but it calls C fdatasync() instead of fsync(), synchronizing only the data in the file, not the metadata.

The fsync_fd() function is used internally by fsync(); it takes a file descriptor as its only argument.

The sync() function is identical to the C function sync().

This module does not export any methods by default, but fsync() is made available as a method of the FileHandle class. Note carefully that as of 0.11, we no longer clobber anything in IO::Handle. You can replace any calls to IO::Handle::fsync() with IO::Handle::sync(): https://rt.cpan.org/Public/Bug/Display.html?id=50418

NOTES ^

Doing fsync() if the stdio buffers aren't flushed (with $| or the autoflush method) is probably pointless.

Calling sync() too often on a multi-user system is slightly antisocial.

AUTHOR ^

Carey Evans <c.evans@clear.net.nz>

SEE ALSO ^

perl(1), fsync(2), sync(2), perlvar(1)

syntax highlighting: