LINUX.ORG.RU

направление ввода-вывода


0

1

Приветствую товарисчи.

Подскажите что мне надо замутить с программкой чтобы мог я направлять вывод на нее вот таким образом.

program1 | ./program2

я делаю вот так например в program2:

if (argc <= 1)
{
    printf("Usage program2 num\n");
    exit(EXIT_FAILURE);
}

и программа мне эту шнягу выводит.

а когда в консоле: program2 100 например, то все идет гладко.

Как это вообще мутится?

Заранее благодарен.

Ответ на: комментарий от sane4ek

Тебе надо комбинировать ввод из stdin и из командной строки.

yoghurt ★★★★★ ()

>Как это вообще мутится?

как чтение из файла. Читай из /dev/stdin. Только его открывать не надо, за тебя открыли.

drBatty ★★ ()

читать K&R...

main()
{
  int line_count = 0;
  char c = 0;
  int copy_output = 0;

  while((c = getchar()) != -1)
  {
    if(c == '\n')
      ++line_count;
    if(copy_output != 0)
      putchar(c);
  }
  printf("line count: %d\n", line_count);
}
invy ★★★★★ ()
if (argc == 2) {
    /* read argv*/
} else if (argc == 1) {
    /* read stdin */
} else {
    /* usage (); exit(); */
}
r2d2 ()

Всё всем спасибо за то что разъяснили мне этот момент . А я раньше думал что система берет просто вывод прошлой про программы и запускает следующую примерно так: progromm output_from_prev_programm. Т.е. ставит его как параметр.

sane4ek ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.