I am working on a console-mode library for J (something like a simple
ncurses).

I am able to set the terminal up to read individual keypresses one at a
time,
but on linux, the process blocks until a key is pressed.

If I were writing C, I would fix this by calling fcntl, like so:

fcntl(STDIN, F_SETFL, O_NONBLOCK);

(where the STDIN=0, F_SETFL=4, and O_NONBLOCK=2048)

The signature for fcntl looks like this:

int fcntl(int *fildes*, int *cmd*, ...);

But I don't know how to explain the '...' signature to J's 'cd' word.

I have tried a bunch of different combinations of n,i,x,s,* etc in the
signature, but nothing seems to work:

   'libc.so.6  i fcntl i i i' cd 0 4 2048
|domain error: cd
|   'libc.so.6  i fcntl i i i'    cd 0 4 2048
   cder''
5 0

According to https://code.jsoftware.com/wiki/Guides/DLLs/Error_Messages ,
this means 'declaration 0' is invalid. I don't know if that means the
return type or the first argument, or if I'm just completely
misunderstanding everything.

Can someone help? :)
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to