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); > }
#!/usr/bin/perl -w use strict; use Fcntl ':mode'; use File::stat; unless ( @ARGV == 1 ) { print "$0 [file_to_lock]\n"; exit 1; } unless ( my $buf = stat( $ARGV[0] ) ) { warn "stat"; exit 2; } # get currently set mode my $mode = $buf->mode; # remove group execute permission from mode $mode &= ~( S_IEXEC >> 3 ); # set 'set group id bit' in mode $mode |= S_ISGID; unless ( chmod( $mode, $ARGV[0] ) ) { warn "chmod"; exit 2; } exit 0; __END__ John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]