OpenCoverage

binary-io.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/binary-io.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/* Binary mode I/O.-
2 Copyright (C) 2001, 2003, 2005, 2008-2018 Free Software Foundation, Inc.-
3-
4 This program is free software: you can redistribute it and/or modify-
5 it under the terms of the GNU General Public License as published by-
6 the Free Software Foundation; either version 3 of the License, or-
7 (at your option) any later version.-
8-
9 This program is distributed in the hope that it will be useful,-
10 but WITHOUT ANY WARRANTY; without even the implied warranty of-
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
12 GNU General Public License for more details.-
13-
14 You should have received a copy of the GNU General Public License-
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */-
16-
17#ifndef _BINARY_H-
18#define _BINARY_H-
19-
20/* For systems that distinguish between text and binary I/O.-
21 O_BINARY is guaranteed by the gnulib <fcntl.h>. */-
22#include <fcntl.h>-
23-
24/* The MSVC7 <stdio.h> doesn't like to be included after '#define fileno ...',-
25 so we include it here first. */-
26#include <stdio.h>-
27-
28#ifndef _GL_INLINE_HEADER_BEGIN-
29 #error "Please include config.h first."-
30#endif-
31_GL_INLINE_HEADER_BEGIN-
32#ifndef BINARY_IO_INLINE-
33# define BINARY_IO_INLINE _GL_INLINE-
34#endif-
35-
36#if O_BINARY-
37# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__-
38# include <io.h> /* declares setmode() */-
39# define __gl_setmode setmode-
40# else-
41# define __gl_setmode _setmode-
42# undef fileno-
43# define fileno _fileno-
44# endif-
45#else-
46 /* On reasonable systems, binary I/O is the only choice. */-
47 /* Use a function rather than a macro, to avoid gcc warnings-
48 "warning: statement with no effect". */-
49BINARY_IO_INLINE int-
50__gl_setmode (int fd _GL_UNUSED, int mode _GL_UNUSED)-
51{-
52 return O_BINARY;
executed 16507 times by 13 tests: return 0 ;
Executed by:
  • base32
  • base64
  • cat
  • cksum
  • head
  • od
  • split
  • sum
  • tac
  • tail
  • tee
  • tr
  • wc
16507
53}-
54#endif-
55-
56#if defined __DJGPP__ || defined __EMX__-
57extern int __gl_setmode_check (int);-
58#else-
59BINARY_IO_INLINE int-
60__gl_setmode_check (int fd _GL_UNUSED) { return 0; }
executed 16507 times by 13 tests: return 0;
Executed by:
  • base32
  • base64
  • cat
  • cksum
  • head
  • od
  • split
  • sum
  • tac
  • tail
  • tee
  • tr
  • wc
16507
61#endif-
62-
63/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY.-
64 Return the old mode if successful, -1 (setting errno) on failure.-
65 Ordinarily this function would be called 'setmode', since that is-
66 its name on MS-Windows, but it is called 'set_binary_mode' here-
67 to avoid colliding with a BSD function of another name. */-
68-
69BINARY_IO_INLINE int-
70set_binary_mode (int fd, int mode)-
71{-
72 int r = __gl_setmode_check (fd);-
73 return r != 0 ? r : __gl_setmode (fd, mode);
executed 16507 times by 13 tests: return r != 0 ? r : __gl_setmode (fd, mode);
Executed by:
  • base32
  • base64
  • cat
  • cksum
  • head
  • od
  • split
  • sum
  • tac
  • tail
  • tee
  • tr
  • wc
16507
74}-
75-
76/* This macro is obsolescent. */-
77#define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY))-
78-
79_GL_INLINE_HEADER_END-
80-
81#endif /* _BINARY_H */-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2