diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2008-01-27 11:37:44 +0100 |
---|---|---|
committer | Tobias Klauser <tklauser@xenon.tklauser.home> | 2008-01-27 11:37:44 +0100 |
commit | 7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch) | |
tree | b1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/C/CONTRIB/OR_PRACTICAL_C/14_02.c |
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/C/CONTRIB/OR_PRACTICAL_C/14_02.c')
-rw-r--r-- | reference/C/CONTRIB/OR_PRACTICAL_C/14_02.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/OR_PRACTICAL_C/14_02.c b/reference/C/CONTRIB/OR_PRACTICAL_C/14_02.c new file mode 100644 index 0000000..a88a33d --- /dev/null +++ b/reference/C/CONTRIB/OR_PRACTICAL_C/14_02.c @@ -0,0 +1,34 @@ +#include <stdio.h> +/* + * The main program will open this file if -S is on + * the command line. + */ +FILE *save_file = NULL; +/******************************************************** + * extended_fgets -- get a line from the input file * + * and record it in a save file if needed. * + * * + * Parameters * + * line -- the line to read * + * size -- sizeof(line) -- maximum number of * + * characters to read * + * file -- file to read data from * + * (normally stdin) * + * * + * Returns * + * NULL -- error or end of file in read * + * otherwise line (just like fgets) * + ********************************************************/ +char *extended_fgets(char *line, int size, FILE *file) +{ + + char *result; /* result of fgets */ + + result = fgets(line, size, file); + + /* did someone ask for a save file */ + if (save_file != NULL) + (void)fputs(line, save_file); + + return (result); +} |