Will I be able to myself write into a file when I have locked it

 .......I think you missed the point on the list. There are two types of
lock's. Mandetory and Advisory. When a Mendetory lock is set, no one can
write to a file, or read it for that fact { or atleast to my knowledge
ex: chmod+l filename && cat filaname
}    What you need is to implement an Advisory Lock. This type of a lock
sets a bit in I-node or V-node depending on OS, and allows processes to
check if the bit is set. So its basicly like a flag inbeded into the I-node.
All process who wich to access the file should check the bit, and if its set
then wait....I think this was already explained on the list. What you wish
to do can be done beter with semaphores.

----- Original Message -----
From: "Ramprasad A Padmanabhan" <[EMAIL PROTECTED]>
To: "Mark Goland" <[EMAIL PROTECTED]>
Sent: Monday, September 09, 2002 3:23 AM
Subject: Re: locking a file in linux .. Havent tried it as yet


> But sir
>
>    Will I be able to myself write into a file when I have locked it
>
>
>
>
> Mark Goland wrote:
>
> >This will do mandetory locking { which can also be done with "chmod +l
> >filename"}. If someone can rewrite this into perl , that  would be great.
> >
> >
> >/*
> >   write by Mark Goland use and enjoy keep the tag
> >   [EMAIL PROTECTED]
> >*/
> >
> >#include <sys/types.h>
> >#include <sys/stat.h>
> >int main(int argc,char **argv){
> >
> >int mode;
> >struct stat buf;
> >
> >
> >if( argc !=2 ){
> > printf("%s [file_to_lock]\n",argv[0]);
> > exit(1);
> >}
> >
> >  if (stat(argv[1], &buf) < 0) {
> >   perror("stat");
> >   exit (2);
> >  }
> >
> >
> >  /* get currently set mode */
> >  mode = buf.st_mode;
> >  /* remove group execute permission from mode */
> >  mode &= ~(S_IEXEC>>3);
> >   /* set 'set group id bit' in mode */
> >  mode |= S_ISGID;
> >  if (chmod(argv[1], mode) < 0) {
> >   perror("chmod");
> >   exit(2);
> >  }
> >exit(0);
> >}
> >
> >----- Original Message -----
> >From: "Ramprasad A Padmanabhan" <[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>; "Michael Fowler" <[EMAIL PROTECTED]>
> >Cc: <[EMAIL PROTECTED]>
> >Sent: Wednesday, September 04, 2002 2:49 AM
> >Subject: Re: locking a file in linux
> >
> >
> >
> >
> >>Michael Fowler wrote:
> >>
> >>
> >>>On Mon, Sep 02, 2002 at 03:56:22PM +0530, Ramprasad A Padmanabhan
wrote:
> >>>
> >>>
> >>>
> >>>>Hi All,
> >>>> I am writing an web application where multiple users may write into
> >>>>the same file concurrently. Also there is a probability that there may
> >>>>be an admin who has opened up the file in 'vi' and editing the file.
> >>>>
> >>>> I want to avoid this  concurrent multiple opens.
> >>>>I tried a range on perl modules like IO::LockedFile, File::Flock;
> >>>>LockFile::Simple etc but all these do not enforce any lock and worst
> >>>>they lock a file even if it is already open in vi
> >>>>
> >>>>
> >>>As has been mentioned elsewhere on this thread, all of these modules
> >>>
> >>>
> >provide
> >
> >
> >>>only advisory locking.  This means that each process that wishes to
> >>>
> >>>
> >modify
> >
> >
> >>>the file must first lock it with the same method.
> >>>
> >>>This will not cause a problem with your application, because you can
add
> >>>
> >>>
> >the
> >
> >
> >>>locked ability to it.  It will, however, cause a problem with your
admin
> >>>editing the file directly.  One solution is to force the admin to run
> >>>
> >>>
> >their
> >
> >
> >>>editor in a wrapper.  For example, you can provide the admin with a
> >>>
> >>>
> >simple
> >
> >
> >>>script, say "edit-db-file", that locks the file just as your web
> >>>
> >>>
> >application
> >
> >
> >>>does, and then invokes his preferred editor (in $ENV{VISUAL} or
> >>>$ENV{EDITOR}).  You'll have to educate your admin (assuming he or she
> >>>
> >>>
> >needs
> >
> >
> >>>it) that this is the only method with which they are to edit the file,
> >>>
> >>>
> >and
> >
> >
> >>>that they must make their edits quickly.  The quickly part is so that
> >>>
> >>>
> >the
> >
> >
> >>>web application, and by extension the user of that application, doesn't
> >>>
> >>>
> >have
> >
> >
> >>>to wait forever to edit the file, or receive an error after the lock
> >>>
> >>>
> >times
> >
> >
> >>>out.
> >>>
> >>>Really, though, why is the admin editing this file directly?  Can you
> >>>
> >>>
> >not
> >
> >
> >>>provide some sort of web interface for the admin as well?  That way the
> >>>admin can't screw up with the lock, and errors in the file itself are
> >>>
> >>>
> >less
> >
> >
> >>>likely.
> >>>
> >>>
> >>>Michael
> >>>--
> >>>Administrator                      www.shoebox.net
> >>>Programmer, System Administrator   www.gallanttech.com
> >>>--
> >>>
> >>>
> >>Thanx All
> >>   But I will still like to have kernel enforced mandatory locking on
> >>the file Can you tell me how to do it
> >>
> >>
> >>--
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >
> >
> >
> >
>
>
>
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to