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]

Reply via email to