/* Copyright (c) 1988 AT&T */ /* All Rights Reserved */ /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ /* The copyright notice above does not evidence any */ /* actual or intended publication of such source code. */ #pragma ident "@(#)rawput.c 1.5 94/08/01 SMI" /* SVr4.0 1.2 */ /*LINTLIBRARY*/ #include "syn.h" #include #include #include "libelf.h" #include "decl.h" #include "error.h" /* Raw file input/output * Read pieces of input files. */ char * _elf_read(fd, off, fsz) int fd; off_t off; size_t fsz; { char *p; if (fsz == 0) return 0; if (fd == -1) { _elf_err = EREQ_NOFD; return 0; } if (lseek(fd, off, 0) != off) { _elf_err = EIO_SEEK; return 0; } if ((p = (char *)malloc(fsz)) == 0) { _elf_err = EMEM_DATA; return 0; } if (read(fd, p, fsz) != fsz) { _elf_err = EIO_READ; free(p); return 0; } return p; }