source: MondoRescue/branches/2.2.9/mindi-busybox/libbb/wfopen.c@ 2725

Last change on this file since 2725 was 2725, checked in by Bruno Cornec, 13 years ago
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
File size: 1.1 KB
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
8 */
9
10#include "libbb.h"
11
12FILE* FAST_FUNC fopen_or_warn(const char *path, const char *mode)
13{
14 FILE *fp = fopen(path, mode);
15 if (!fp) {
16 bb_simple_perror_msg(path);
17 //errno = 0; /* why? */
18 }
19 return fp;
20}
21
22FILE* FAST_FUNC fopen_for_read(const char *path)
23{
24 return fopen(path, "r");
25}
26
27FILE* FAST_FUNC xfopen_for_read(const char *path)
28{
29 return xfopen(path, "r");
30}
31
32FILE* FAST_FUNC fopen_for_write(const char *path)
33{
34 return fopen(path, "w");
35}
36
37FILE* FAST_FUNC xfopen_for_write(const char *path)
38{
39 return xfopen(path, "w");
40}
41
42static FILE* xfdopen_helper(unsigned fd_and_rw_bit)
43{
44 FILE* fp = fdopen(fd_and_rw_bit >> 1, fd_and_rw_bit & 1 ? "w" : "r");
45 if (!fp)
46 bb_error_msg_and_die(bb_msg_memory_exhausted);
47 return fp;
48}
49FILE* FAST_FUNC xfdopen_for_read(int fd)
50{
51 return xfdopen_helper(fd << 1);
52}
53FILE* FAST_FUNC xfdopen_for_write(int fd)
54{
55 return xfdopen_helper((fd << 1) + 1);
56}
Note: See TracBrowser for help on using the repository browser.