http://www.perlmonks.org?node_id=837084

nagalenoj has asked for the wisdom of the Perl Monks concerning the following question:

Dear monks,

I've downloaded File::Sync from CPAN. I found the below line of code in Sync.pm and I don't understand, how this function is working

# Interface from Perl filehandle to POSIX file descriptor. sub fsync(*) { @_ == 1 or croak "usage: fsync FILEHANDLE"; fsync_fd(fileno(qualify_to_ref($_[0], caller()))); } # Make fsync a method of IO::Handle and FileHandle. *IO::Handle::fsync = *FileHandle::fsync = \&fsync;

I don't know where the fsync_fd function is defined? Can someone clarify me.

Replies are listed 'Best First'.
Re: Where is the fsync_fd() function defined?
by marto (Cardinal) on Apr 27, 2010 at 12:02 UTC

    The docs state:

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

    If you'd like to look at fsync_fd() see Sync.xs.

    Update: Fixed typo: s/fsync_df/fsync_fd/ Thanks kennethk for pointing this out.