in reply to How do i determine which mode the file has open ? (write or append mode)
use warnings; use Inline C => Config => BUILD_NOISY => 1; use Inline C => <<'EOC'; SV * my_fmode(SV * handle) { int x; IO *io; io = sv_2io(handle); x = IoTYPE(io); if (x == IoTYPE_RDONLY) return newSVuv(1); if (x == IoTYPE_WRONLY) return newSVuv(2); if (x == IoTYPE_RDWR) return newSVuv(3); if (x == IoTYPE_APPEND) return newSVuv(4); warn("Unable to determine mode\n"); return 0; } EOC open($fh1, '>', 'test1.txt') or die "Can't open \$fh1: $!"; open($fh2, '>>', 'test2.txt') or die "Can't open \$fh2: $!"; print my_fmode($fh1), " ", my_fmode($fh2), "\n"; close($fh1) or die "Can't close \$fh1: $!"; close($fh2) or die "Can't close \$fh2: $!";
|
|---|