I have an object that needs to maintain an open file handle. I wrote my code in a way that made sence to me, however when I try to call the GetBlocks() function in the following code I get a 'Bad File Descriptor' error.
Here is the code for the object:package OEFSDevice; sub new { my $class = shift; my (%params) = @_; my $ref = { 'Device' => $params{'Device'}, }; print("Device: |" . $params{'Device'} . "|\n"); sysopen($ref->{'HANDLE'},$params{'Device'}, O_RDWR | O_SYNC) || re +turn 0; return bless($ref, $class); } sub GetBlocks($$$) { my $self = shift; my ($Offset, $Count, $Buffer) = @_; sysseek($self->{'HANDLE'},$Offset * 512,0) || return 0; sysread($self->{'HANDLE'},$$Buffer,$Count * 512) || return 0; return 1; } sub SetBlocks($$$) { my $self = shift; my ($Offset, $Count, $Buffer) = @_; sysseek($self->{'HANDLE'},$Offset * 512,0) || return 0; syswrite($self->{'HANDLE'},$$Buffer,$Count * 512) || return 0; return 1; } sub Close { my $self = shift; close($self->{'HANDLE'}); } sub DESTROY { Close(); } 1;
In reply to Need object to retain open filehandle. by exodist
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |