Oh, alright then.
ioctl is a driver control function that any jEDI can implement. It is generally used to control features in the drivers that can't be made generically available because they are specific to Oracle/J4/etc. The ioctl() function is also a C level function for performing similar operations on Unix level resources.
When you get error message numbers back, you can use the ERRMSG <n> command to find out what the error number means at the operating system level. Smaller error numbers are usually return codes from UNIX, higher numbers such as 2007 tend to come from the drivers (in which case you need to consult the driver docs) - large negative numbers are usually Win32 return codes.
The header file errno.h also (eventually at least on systems like Linux) gives you a list of operating system return codes.
Errno 6 is:
Input or output on a special file referred to a device that did not exist, or made a request beyond the limits of the device. This error may also occur when, for example, a tape drive is not online or no disk pack is loaded on a drive.
This is a pretty general error because it can come from all sorts of devices: files, printers, tapes, tty, even sockets. So, was there no other information logged against the errno 6? Perhaps you should give the full log from a few lines before and after this line number. Quite often it is some transient error that the jBASE code will retry on and it will all go away, such as a printer being offline then coming back online.
Jim
Thanks and regards