#include <stdio.h>
#include <stdlib.h>
char *my_fgets(char *s, int n, FILE *fp);
int main(void)
{
char buf[100];
if (!my_fgets(buf, sizeof(buf), stdin) && ferror(stdin)) {
fprintf(stderr, "%s: error reading stdin\n", buf);
exit(EXIT_FAILURE);
}
puts(buf);
return 0;
}
char *my_fgets(char *s, int n, FILE *fp)
{
int c;
char *ch;
ch = s;
while (--n > 0 && (c = getc(fp)) != EOF)
if ((*ch++ = c) == '\n')
break;
*ch = '\0';
return (c == EOF && ch == s) ? NULL : s;
}
/*
run:
read characters from stream with my_fgets
read characters from stream with my_fgets
*/