COHERENT manpages
This page displays the COHERENT manpage for fdopen() [Open a stream for standard I/O].
List of available manpages
Index
fdopen() -- STDIO Function (libc)
Open a stream for standard I/O
#include <stdio.h>
FILE *fdopen(fd, type) int fd; char *type;
fdopen() allocates and returns a FILE structure, or stream, for the file
descriptor fd, as obtained from open(), creat(), dup(), or pipe(). type is
the manner in which you want fd to be opened, as follows:
r Read a file
w Write into a file
a Append onto a file
Example
The following example obtains a file descriptor with open(), and then uses
fdopen() to build a pointer to the FILE structure.
#include <ctype.h>
#include <stdio.h>
void adios(message)
char *message;
{
fprintf(stderr, "%s\n", message);
exit(1);
}
main(argc, argv)
int argc; char *argv[];
{
extern FILE *fdopen();
FILE *fp;
int fd;
int holder;
if (--argc != 1)
adios("Usage: example filename");
if ((fd = open(argv[1], 0)) == -1)
adios("open failed.");
if ((fp = fdopen(fd, "r")) == NULL)
adios("fdopen failed.");
while ((holder = fgetc(fp)) != EOF) {
if ((holder > '\177') || (holder < ' '))
switch(holder) {
case '\t':
case '\n':
break;
default:
fprintf(stderr, "Seeing char %d\n", holder);
exit(1);
}
fputc(holder, stdout);
}
}
See Also
creat(),
dup(),
fopen(),
libc,
open()
POSIX Standard, §8.2.2
Diagnostics
fdopen() returns NULL if it cannot allocate a FILE structure. Currently,
only 20 FILE structures can be allocated per program, including stdin,
stdout, and stderr.











