Blame lib/safe-read.h

Packit 709fb3
/* An interface to read() that retries after interrupts.
Packit 709fb3
   Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc.
Packit 709fb3
Packit 709fb3
   This program is free software: you can redistribute it and/or modify
Packit 709fb3
   it under the terms of the GNU General Public License as published by
Packit 709fb3
   the Free Software Foundation; either version 3 of the License, or
Packit 709fb3
   (at your option) any later version.
Packit 709fb3
Packit 709fb3
   This program is distributed in the hope that it will be useful,
Packit 709fb3
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 709fb3
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 709fb3
   GNU General Public License for more details.
Packit 709fb3
Packit 709fb3
   You should have received a copy of the GNU General Public License
Packit 709fb3
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit 709fb3
Packit 709fb3
/* Some system calls may be interrupted and fail with errno = EINTR in the
Packit 709fb3
   following situations:
Packit 709fb3
     - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
Packit 709fb3
       types Ctrl-Z) on some platforms: Mac OS X.
Packit 709fb3
     - The process receives a signal for which a signal handler was installed
Packit 709fb3
       with sigaction() with an sa_flags field that does not contain
Packit 709fb3
       SA_RESTART.
Packit 709fb3
     - The process receives a signal for which a signal handler was installed
Packit 709fb3
       with signal() and for which no call to siginterrupt(sig,0) was done,
Packit 709fb3
       on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
Packit 709fb3
Packit 709fb3
   This module provides a wrapper around read() that handles EINTR.  */
Packit 709fb3
Packit 709fb3
#include <stddef.h>
Packit 709fb3
Packit 709fb3
#ifdef __cplusplus
Packit 709fb3
extern "C" {
Packit 709fb3
#endif
Packit 709fb3
Packit 709fb3
Packit 709fb3
#define SAFE_READ_ERROR ((size_t) -1)
Packit 709fb3
Packit 709fb3
/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted.
Packit 709fb3
   Return the actual number of bytes read, zero for EOF, or SAFE_READ_ERROR
Packit 709fb3
   upon error.  */
Packit 709fb3
extern size_t safe_read (int fd, void *buf, size_t count);
Packit 709fb3
Packit 709fb3
Packit 709fb3
#ifdef __cplusplus
Packit 709fb3
}
Packit 709fb3
#endif