Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

file locker?

Posted on 2000-04-04
2
Medium Priority
?
222 Views
Last Modified: 2013-12-25
how to create a file locker so that only one person can make writeing to
a file?

thanks!
0
Comment
Question by:she25
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 16

Accepted Solution

by:
maneshr earned 200 total points
ID: 2685805
if you are using PERL, you can use the flock function.

                    flock FILEHANDLE, OPERATION

                    Establishes or removes a lock on a file opened with filehandle. This function calls one of the
                    Unix functions flock, lockf, or
                    the locking capabilities of fcntl, whichever your system supports. If none of these functions
                    exist on your system, flock will
                    produce a fatal error.

                    operation is the type of locking function to perform. The number by each operation name is the
                    argument that Perl's flock
                    takes by default. You may also use the operation names if you explicitly import them from the
                    Fcntl module with use Fcntl
                    ":flock".

                         LOCK_SH (1)

                              Establishes a shared lock on the file (read lock).

                         LOCK_EX (2)

                              Establishes an exclusive lock on the file (write lock).

                         LOCK_UN (8)

                              Removes a lock from the file.

                         LOCK_NB (4)

                              Prevents flock from blocking while trying to establish a lock with LOCK_SH or LOCK_EX
                    and instructs it to return
                              immediately. LOCK_NB must be ored with the other operation as an expression for the
                    operation argument, i.e.,
                              (LOCK_EX | LOCK_NB).



                    This function calls flock(2) on FILEHANDLE. See the manual page for flock(2) for the definition of
                    OPERATION. Invoking flock will produce a fatal error if used on a machine that doesn't
                    implement flock(2) or emulate it through some other locking mechanism. Here's a mailbox
                    appender for some BSD-based systems:

                    $LOCK_SH = 1;
                    $LOCK_EX = 2;
                    $LOCK_NB = 4;
                    $LOCK_UN = 8;

                    sub lock {
                        flock MBOX, $LOCK_EX;
                        # and, in case someone appended
                        # while we were waiting...
                        seek MBOX, 0, 2;
                    }

                    sub unlock {
                        flock MBOX, $LOCK_UN;
                    }

                    open MBOX, ">>/usr/spool/mail/$ENV{'USER'}" or die "Can't open mailbox: $!";

                    lock();
                    print MBOX $msg, "\n\n";
                    unlock();

                    Note that flock is unlikely to work on a file being accessed through a network file system.
                    =====================================================
0
 

Expert Comment

by:dtabacco
ID: 2710417
I don't think flock works under windows implementations of perl such as activeperl, though.
0

Featured Post

Tech or Treat!

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this tutorial I will focus on how to use WhizBase as a tool for sending ICQ messages to ICQ. Here I will use a new technology in WhizBase, published in WhizBase 5.1 version. In this tutorial I will use 3 files, pager.wbsp for the processing, e…
If you get a (Blue Screen of Death), your system writes a small file called a minidump. Your first step is to make certain your computer is setup to record memory dumps. Right click My Computer, choose properties. Click on the advanced tab, an…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

598 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question