# with only one command
#
# Author: Patrick Canterino <patshaping@gmx.net>
-# Last modified: 2004-07-28
+# Last modified: 2004-08-05
#
use strict;
use vars qw(@EXPORT);
-use Carp qw(croak);
+use Fcntl;
### Export ###
sub chgrp($@)
{
my ($group,@files) = @_;
- my $gid = getgrnam($group);
+ my $gid = ($group !~ /^\d+$/) ? getgrnam($group) : $group;
return unless($gid);
return chown(-1,$gid,@files);
return if(-e $file);
- open(FILE,">$file") or return;
- close(FILE) or return;
+ sysopen(FILE,$file,O_RDONLY | O_CREAT) or return;
+ close(FILE) or return;
return 1;
}
my $file = shift;
local *FILE;
- open(FILE,"<$file") or return;
+ sysopen(FILE,$file,O_RDONLY) or return;
read(FILE, my $content, -s $file);
- close(FILE) or return;
+ close(FILE) or return;
return \$content;
}
my ($file,$content) = @_;
local *FILE;
- open(FILE,">$file") or return;
- print FILE $$content or do { close(FILE); return };
- close(FILE) or return;
+ sysopen(FILE,$file,O_WRONLY | O_CREAT | O_TRUNC) or return;
+ print FILE $$content or do { close(FILE); return };
+ close(FILE) or return;
return 1;
}