Skip to content


Read bytes from a file or named pipe

read1 f           read1[f]
read1 (f;o;n)     read1[(f;o;n)]
read1 h           read1[h]
read1 (fifo;n)    read1[(fifo;n)]


returns bytes from the source, as follows.


Where the argument is

  • a file symbol, returns the entire content of the file
  • a file descriptor (f;o;n), returns up to n bytes from f starting at o
  • a file descriptor (f;o), returns the entire content of f from o onwards
q)`:test.txt 0:("hello";"goodbye")      / write some text to a file
q)read1`:test.txt                       / read in as bytes
q)"c"$read1`:test.txt                   / convert from bytes to char

q)/ read 500000 lines, chunks of (up to) 100000 at a time
q)d:raze{read1(`:/tmp/data;x;100000)}each 100000*til 5 

Named pipe

(Since V3.4.) Where x is

  • a list (fifo;length), returns length bytes read from fifo
  • an atom fifo, blocks and returns bytes from fifo when EOF is encountered (0#0x if immediate)
"Red Hat "
q)system"mkfifo somefifo";h:hopen`fifo:somefifo; 0N!read1 h; hclose h

File system, Interprocess communication

Back to top