use warnings; use strict; package FatConst; use Exporter; use DynaLoader; use Fcntl; our $VERSION = 1.00; our @ISA = (Exporter::, DynaLoader::); bootstrap FatConst::; our @EXPORT = qw" ATTR_RO ATTR_HIDDEN ATTR_SYS ATTR_VOLUME ATTR_DIR ATTR_ARCH fat_get_attr fat_format_attr "; our @EXPORT_OK = qw" FAT_IOCTL_GET_ATTRIBUTES FAT_IOCTL_SET_ATTRIBUTES "; sub fat_get_attr { my($fname) = @_; sysopen my $F, $fname, O_RDONLY() or return; my $o = pack "x8"; ioctl $F, FAT_IOCTL_GET_ATTRIBUTES(), $o or return; return unpack "L", $o; } sub fat_format_attr { my($n) = @_; my $o = ""; for my $i (0 .. 7) { $o = ($n & (1 << $i) ? substr("RHSVDAXY", $i, 1) : " ") . $o; } $o; } 1; __END__