exodist has asked for the wisdom of the Perl Monks concerning the following question:
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;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Need object to retain open filehandle.
by ysth (Canon) on Jul 02, 2007 at 03:37 UTC | |
by exodist (Monk) on Jul 02, 2007 at 04:50 UTC | |
by ysth (Canon) on Jul 02, 2007 at 05:03 UTC | |
|
Re: Need object to retain open filehandle.
by TOD (Friar) on Jul 02, 2007 at 03:31 UTC | |
by exodist (Monk) on Jul 02, 2007 at 04:19 UTC | |
by BrowserUk (Patriarch) on Jul 02, 2007 at 05:03 UTC | |
by exodist (Monk) on Jul 02, 2007 at 03:49 UTC |