mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-12 12:16:04 +08:00
41 lines
833 B
C
41 lines
833 B
C
|
/* Tests that stdin can be redirected from a normal file. */
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
int
|
||
|
main (void)
|
||
|
{
|
||
|
const char* fname = "freopen.dat";
|
||
|
const char tsttxt[]
|
||
|
= "A random line of text, used to test correct freopen etc.\n";
|
||
|
FILE* instream;
|
||
|
FILE *old_stderr;
|
||
|
char c1;
|
||
|
|
||
|
/* Like the freopen call in flex. */
|
||
|
old_stderr = freopen (fname, "w+", stderr);
|
||
|
if (old_stderr == NULL
|
||
|
|| fwrite (tsttxt, 1, strlen (tsttxt), stderr) != strlen (tsttxt)
|
||
|
|| fclose (stderr) != 0)
|
||
|
{
|
||
|
printf ("fail\n");
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
instream = freopen(fname, "r", stdin);
|
||
|
if (instream == NULL) {
|
||
|
printf("fail\n");
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
c1 = getc(instream);
|
||
|
if (c1 != 'A') {
|
||
|
printf("fail\n");
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
printf ("pass\n");
|
||
|
exit(0);
|
||
|
}
|