| Functions for filehandles, files, or directoriesFile control system callDaftar Isi - fcntl FILEHANDLE,FUNCTION,SCALAR
Implements the fcntl(2) function. You'll probably have to say - use Fcntl;
first to get the correct constant definitions. Argument processing andvalue returned work just like ioctl below.For example: - use Fcntl;
- fcntl($filehandle, F_GETFL, $packed_return_buffer)
- or die "can't fcntl F_GETFL: $!";
You don't have to check for defined on the return from fcntl .Like ioctl , it maps a 0 return from the system call into"0 but true" in Perl. This string is true in boolean context and 0 in numeric context. It is also exempt from the normal -w warningson improper numeric conversions. Note that fcntl raises an exception if used on a machine thatdoesn't implement fcntl(2). See the Fcntl module or your fcntl(2)manpage to learn what functions are available on your system. Here's an example of setting a filehandle named REMOTE to benon-blocking at the system level. You'll have to negotiate $| on your own, though. - use Fcntl qw(F_GETFL F_SETFL O_NONBLOCK);
- $flags = fcntl(REMOTE, F_GETFL, 0)
- or die "Can't get flags for the socket: $!\n";
- $flags = fcntl(REMOTE, F_SETFL, $flags | O_NONBLOCK)
- or die "Can't set flags for the socket: $!\n";
Portability issues: fcntl in perlport. |
| |
|