# New Ticket Created by  Jonathan Stowe 
# Please include the string:  [perl #126541]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=126541 >


Hi,
In a number of places in the design documents it is suggested that certain 
functionality on files (e.g. fcntl, ioctl) or sockets (e.g. getsockname, 
setsockopt) should be provided by external modules via the NativeCall 
interface, however the majority of these C library functions require the native 
"file descriptor" as one of the arguments.

It would be useful to module authors if the OS platform (or runtime 
environment) idea of a "file descriptor" was available through some accessor on 
the IO::Handle, IO::Socket etc

Where libuv is being used then this is available through

    int uv_fileno(const uv_handle_t* handle, uv_os_fd_t* fd)

If libuv is being bypassed for sync operations at some later point then the 
descriptor will be available directly.

My personal fear is that if this is not provided for the use in modules that 
require them then people will just bypass IO::* altogether creating an 
interoperability nightmare.

Thanks.

Reply via email to