OLD | NEW |
(Empty) | |
| 1 /* Low-level file-handling. |
| 2 Copyright (C) 2012, 2013 Free Software Foundation, Inc. |
| 3 |
| 4 This file is part of GDB. |
| 5 |
| 6 This program is free software; you can redistribute it and/or modify |
| 7 it under the terms of the GNU General Public License as published by |
| 8 the Free Software Foundation; either version 3 of the License, or |
| 9 (at your option) any later version. |
| 10 |
| 11 This program is distributed in the hope that it will be useful, |
| 12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 14 GNU General Public License for more details. |
| 15 |
| 16 You should have received a copy of the GNU General Public License |
| 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 18 |
| 19 #ifndef FILESTUFF_H |
| 20 #define FILESTUFF_H |
| 21 |
| 22 /* Note all the file descriptors which are open when this is called. |
| 23 These file descriptors will not be closed by close_most_fds. */ |
| 24 |
| 25 extern void notice_open_fds (void); |
| 26 |
| 27 /* Mark a file descriptor as inheritable across an exec. */ |
| 28 |
| 29 extern void mark_fd_no_cloexec (int fd); |
| 30 |
| 31 /* Mark a file descriptor as no longer being inheritable across an |
| 32 exec. This is only meaningful when FD was previously passed to |
| 33 mark_fd_no_cloexec. */ |
| 34 |
| 35 extern void unmark_fd_no_cloexec (int fd); |
| 36 |
| 37 /* Close all open file descriptors other than those marked by |
| 38 'notice_open_fds', and stdin, stdout, and stderr. Errors that |
| 39 occur while closing are ignored. */ |
| 40 |
| 41 extern void close_most_fds (void); |
| 42 |
| 43 /* Like 'open', but ensures that the returned file descriptor has the |
| 44 close-on-exec flag set. */ |
| 45 |
| 46 extern int gdb_open_cloexec (const char *filename, int flags, |
| 47 /* mode_t */ unsigned long mode); |
| 48 |
| 49 /* Like 'fopen', but ensures that the returned file descriptor has the |
| 50 close-on-exec flag set. */ |
| 51 |
| 52 extern FILE *gdb_fopen_cloexec (const char *filename, const char *opentype); |
| 53 |
| 54 /* Like 'socketpair', but ensures that the returned file descriptors |
| 55 have the close-on-exec flag set. */ |
| 56 |
| 57 extern int gdb_socketpair_cloexec (int namespace, int style, int protocol, |
| 58 int filedes[2]); |
| 59 |
| 60 /* Like 'socket', but ensures that the returned file descriptor has |
| 61 the close-on-exec flag set. */ |
| 62 |
| 63 extern int gdb_socket_cloexec (int namespace, int style, int protocol); |
| 64 |
| 65 /* Like 'pipe', but ensures that the returned file descriptors have |
| 66 the close-on-exec flag set. */ |
| 67 |
| 68 extern int gdb_pipe_cloexec (int filedes[2]); |
| 69 |
| 70 #endif /* FILESTUFF_H */ |
OLD | NEW |