- ioctl FILEHANDLE,FUNCTION,SCALAR
Implements the ioctl(2) function. You'll probably first have to say
require "ioctl.ph"; # probably in /usr/local/lib/perl/ioctl.ph
to get the correct function definitions. If ioctl.ph doesn't
exist or doesn't have the correct definitions you'll have to roll your
own, based on your C header files such as ioctl
call. (If SCALAR
has no string value but does have a numeric value, that value will be
passed rather than a pointer to the string value. To guarantee this to be
true, add a 0
to the scalar before using it.) The pack
and unpack
functions may be needed to manipulate the values of structures used by
ioctl
.
The return value of ioctl
(and fcntl
) is as follows:
if OS returns: then Perl returns: -1 undefined value 0 string "0 but true" anything else that number
Thus Perl returns true on success and false on failure, yet you can still easily determine the actual value returned by the operating system:
$retval = ioctl(...) || -1; printf "System returned %d\n", $retval;
The special string "0 but true"
is exempt from -w complaints
about improper numeric conversions.