LINUX.ORG.RU

  int fd = 0;
  char *filemmap;
  struct stat statinfo;

  fd = open (filename, O_RDONLY);
  if (fd < 0)
  {
    error ("InputError", "Cannot open input file: %s", strerror (errno));
    return 1;
  }
  else
    __file__ = strdup (filename);

  if (fstat (fd, &statinfo))
  {
    error ("InputError", "Cannot stat input file: %s", strerror (errno));
    close (fd);
    return 1;
  }

  if (!statinfo.st_size)
  {
    warning ("InputError", "File %s is empty", filename);
    return 0;
  }

  file = (char *) malloc (statinfo.st_size + 1);
  if ((filemmap = (char *) mmap (NULL, statinfo.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED)
  {
    error ("InputError", "Cannot mmap input file: %s", strerror (errno));
    close (fd);
    return 1;
  }

kmeaw ★★★
()
Ответ на: комментарий от ECLIPSE

man 2 mmap

man 2 read

Этот кусок использовался в старой версии TBPL для подключения исходных файлов. Эта версия в сети не опубликована.

kmeaw ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.