summaryrefslogtreecommitdiff
path: root/otherlibs/unix/read.c
blob: 18ba74d66296b2ff70b88f5315f9c022ee5ed183 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <mlvalues.h>
#include "unix.h"

value unix_read(fd, buf, ofs, len) /* ML */
     value fd, buf, ofs, len;
{
  int ret;
  enter_blocking_section();
  ret = read(Int_val(fd), &Byte(buf, Long_val(ofs)), Int_val(len));
  leave_blocking_section();
  if (ret == -1) uerror("read", Nothing);
  return Val_int(ret);
}