У меня есть программа, написанная на c, которая вызывается как:
"my_program arg1 arg2 argc < example_file".
или
"cat text_file | my_program arg1 arg2"
У меня есть следующий код ниже:
FILE *fp = fopen("/dev/stdin", "r");
int KMAX = 1024;
char t [KMAX];
iff (fgets(t, KMAX, fp) != NULL) {
......
Это прекрасно работает, если пользователь действительно вводит данные.Однако, если я просто вызову программу, как:
my_program arg1 arg2 arg3
Она просто зависает и ждет ввода пользователя.Как лучше всего читать со стандартного ввода в этих двух случаях?Я думал, что проверка на Null сработает, но, похоже, не сработает.Обычно я просто проверяю, существует ли текстовый файл, но это сработает только для первого способа выполнения программы, а не для второго.Любые предложения будут оценены.