#include <fcntl.h>
#include <stdio.h>
#include <hurd.h>

int
main (int argc, char *argv[])
{
  file_t dir, file;
  char *file_name;
  retry_type retry_type;
  char retry[1024];
  error_t err;

  if (argc != 2)
    error (1, 0, "missing file operand");

  file_name = argv[1];
  dir = file_name[0] == '/' ? getcrdir () : getcwdir ();
  err = dir_lookup (dir , file_name, O_READ, 0, &retry_type, retry, &file);
  if (err)
    error (1, err, "dir_lookup");
  if (retry_type != FS_RETRY_REAUTH || retry[0] != '\0')
    error (1, 0, "dir_lookup not final: %d, %s", retry_type, retry);

  char *buf = NULL;
  size_t len = 0;
  err = io_read (file, &buf, &len, 0, 10);
  if (err)
    error (1, err, "io_read");

  buf[len - 1] = '\0';
  puts (buf);

  return 0;
}
