logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

File::Flock - file locking with flock

Description

       Lock files using the flock() call.  If the file to be locked does not exist, then the file is created.
       If the file was created then it will be removed when it is unlocked assuming it's still an empty file.

       Locks can be created by new'ing a File::Flock object.  Such locks are automatically removed when the
       object goes out of scope.  The unlock() method may also be used.

       lock_rename() is used to tell File::Flock when a file has been renamed (and thus the internal locking
       data that is stored based on the filename should be moved to a new name).  unlock() the new name rather
       than the original name.

       Locks are released on process exit when the process that created the lock exits.  Subprocesses that exit
       do not remove locks.  Use forget_locks() or POSIX::_exit() to prevent unlocking on process exit.

License

       Copyright (C) 1996-2012 David Muir Sharnoff <cpan@dave.sharnoff.org> Copyright (C) 2013 Google, Inc.
       This module may be used/copied/etc on the same terms as Perl itself.

Name

        File::Flock - file locking with flock

Packagers

       File::Flock is packaged for Fedora by Emmanuel Seyman <emmanuel.seyman@club-internet.fr>.

perl v5.34.0                                       2022-06-30                                   File::Flock(3pm)

See Also

       See File::Flock::Subprocess for a variant that uses a subprocess to hold the locks so that the locks
       survive when the parent process forks.  See File::Flock::Forking for a way to automatically choose
       between File::Flock and File::Flock::Subprocess.

Synopsis

        use File::Flock;

        lock($filename);

        lock($filename, 'shared');

        lock($filename, undef, 'nonblocking');

        lock($filename, 'shared', 'nonblocking');

        unlock($filename);

        lock_rename($oldfilename, $newfilename)

        my $lock = new File::Flock '/somefile';

        $lock->unlock();

        $lock->lock_rename('/new/file');

        forget_locks();

See Also