Aaron - что Вы попытались бы выполнить, повторно инициализировав переменные?
Отредактированный... Красота jQuery, по-моему, является вызовом, назад функционирует. Почему не только имеют некоторое действие/функцию, выполняемое после события.
Используйте isatty
:
#include <stdio.h>
#include <io.h>
...
if (isatty(fileno(stdin)))
printf( "stdin is a terminal\n" );
else
printf( "stdin is a file or a pipe\n");
(в окнах они имеют префикс подчеркивания: _isatty
, _fileno
)
Вызовите stat () или fstat () и посмотрите, установлен ли S_IFIFO в st_mode.
Вероятно, они проверяют тип файла, который "stdin" находится с fstat, примерно так:
struct stat stats;
fstat(0, &stats);
if (S_ISCHR(stats.st_mode)) {
// Looks like a tty, so we're in interactive mode.
} else if (S_ISFIFO(stats.st_mode)) {
// Looks like a pipe, so we're in non-interactive mode.
}
Конечно, Python - это открытый исходный код, поэтому вы можете просто посмотреть, что они делают точно знаю:
Вы можете вызвать stat (0, & result)
и проверить наличие ! S_ISREG (result.st_mode)
. Но это Posix, а не C / C ++.