Bleh thanks for the function. ungetc( ch, stdin ); is exactly what i was looking for. Im constantly reading, echoing, transmitting, and accepting more imput and i need to peek at stdin rather than irrevocably accept input from it so i can take the first character and print it as a prompt, while at the same time use it to figure out what they are looking for. I know im vague and irritating, but i passed my english 2 years ago and can completely focus on coding C on an archaic router. BLEH! lusers dont need an interface! im working on the part that auto-searches based on the first few letters of the command. like you want to run the command asdf. after the A it limits it to the A commands, second letter, third letter, and when you finally get a 100% match it finishes the command for you, auto complete, and then gives you a list of parameters it takes.