delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/12/06/07:05:49

From: fwibbly AT earthlink DOT net (Paul Wilson)
Subject: B20: fgets() doesn't wait for input on stdin
6 Dec 1998 07:05:49 -0800 :
Message-ID: <366A2A6B.FE80BD80.cygnus.gnu-win32@earthlink.net>
Mime-Version: 1.0
To: gnu-win32 AT cygnus DOT com

For some reason, fgets() just skips over. Here's the code snippet:

int check_exists(char *thefile) {
	int aexists;
	char answer[5];

	aexists = open(thefile, O_RDONLY);
	if (aexists < 0) {
		close(aexists);
		return(0);
	} else {
		close(aexists);
		fprintf(stderr, "Warning. You are about to overwrite %s. Still do it?
(y/n) ", thefile);
		fgets(answer, sizeof(answer), stdin);
		answer[strlen(answer)-1] = '\0';
		if (answer[0] == 'y') {
			return(0);
		} else {
			printf("You typed %s\n", answer);
			exit(8);
		}
	}
}

This always results in "You typed" being printed. No input it waited on.
This is B20.0 running under Win98. (This code has been tested and works
under FreeBSD).

Paul
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019