Как определить что такое stdin?

Модератор: Модераторы разделов

MiK13
Сообщения: 1281
ОС: Linux Debian

Как определить что такое stdin?

Сообщение MiK13 »

В программе нужно ввести ряд параметров. По типу:

Код: Выделить всё

fprintf(stderr,"Par1: "); scanf("%f",&par1);
fprintf(stderr,"Par2: "); scanf("%f",&par2);
fprintf(stderr,"Par3: "); scanf("%f",&par3);
fprintf(stderr,"Par4: "); scanf("%f",&par4);
fprintf(stderr,"Par5: "); scanf("%f",&par5);
Потом начинается обработка с большим выводом в stdout, который я перенаправляю в файл.
Но я могу записать вводимые числа в файл (fi,dat) и запустить программу ./prog <fi.dat >fo.dat
При этом на экран будут выведены строки запроса параметров.
А как сделать чтобы они не выводились?
Конечно, один из вариантов ./prog <fi.dat >fo.dat 2>/dev/null
Но можно ли в программе определить, что она читает данные не с терминала, а из файла?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5428
ОС: Gentoo

Re: Как определить что такое stdin?

Сообщение /dev/random »

MiK13 писал:
02.09.2025 11:24
Но можно ли в программе определить, что она читает данные не с терминала, а из файла?
man 3 isatty
Спасибо сказали:
MiK13
Сообщения: 1281
ОС: Linux Debian

Re: Как определить что такое stdin?

Сообщение MiK13 »

/dev/random писал:
02.09.2025 11:26
man 3 isatty
Спасибо. как раз то, что нужно.
Спасибо сказали: