Fórumok
Ha egy pipe sorba teszem a programot, akkor a stdin-ről tudom olvasni az előző kimenetét, de ha nincs semmi az sdtin-en akkor a billentyűzetről vár karaktereket. Azt hogy tudom megadni, hogy csak a pipe esetén olvassa az stdin-t?
Hozzászólások
> hogy csak a pipe esetén olvassa az stdin-t?
Gondolom ez ugyanaz, mint hogy terminál esetén ne olvassa az stdin-t.
http://linux.die.net/man/3/isatty
Imigyen is lehet:
A feltetel akkor fut le, ha az stdin egy pipe. Lasd me'g: `man 2 fstat`, hogy a tobbi esetet (regularis file, socket) hogy tudod lekezelni. A terminal ebben az esetben S_ISCHR() lesz, hogy ezen belul ez tenyleg tty-e: lasd `man 3 isatty`, bar asszem ez is valahogy az fstat-bol szedi ki az infot.
Köszi, szerintem ez utóbbi a tökéletes megoldás, de én ezt kreáltam
if (!isatty(fileno(stdin))) fgets(config.msg,sizeof(config.msg),stdin);