Передача вывода C-программы в файл (bash) - PullRequest
0 голосов
/ 12 октября 2010

Я просто пробую свои силы в bash, поэтому я написал простую программу на C для подсчета количества символов в файле.

Это моя программа на C:

#include <stdio.h>

int main()
{
  int i, nc;
  nc = 0;
  i = getchar();
  while (i!=EOF){
    nc = nc + 1;
    i = getchar();
  }
  printf("%d\n",nc);

  return 0;
}

Это команда bash, которую я использую для компиляции и выполнения:

gcc sign.c < bright_side_of_life > output

Мой выходной файл полностью пуст.Куда я иду не так?

Ответы [ 2 ]

6 голосов
/ 12 октября 2010

Вы должны сначала скомпилировать, а затем выполнить:

gcc -o sign sign.c
./sign < bright_side_of_life > output

Кроме того, технически это не передача вывода программы в файл;это просто перенаправление.Если бы вы действительно хотели задействовать канал, вам, вероятно, потребовалось бы какое-то «злоупотребление кошачьими» (то есть используйте команду «кошка»):

./sign < bright_side_of_life | cat > output

Однако перенаправление ввода / вывода более нормальноеи (хотя это действительно не имеет значения в этом контексте) более эффективно.

3 голосов
/ 12 октября 2010
gcc sign.c -o output
./output < bright_side_of_life > size.txt

и я надеюсь, что вы на самом деле практикуете свой язык Си. в противном случае просто используйте инструмент wc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...