что будет эквивалент C # этого фрагмента кода? - PullRequest
2 голосов
/ 18 апреля 2010

Я не совсем понимаю Perl, поэтому мне было интересно, кто-нибудь может дать мне подсказку о том, что этот код запрашивает у STDIN, и как это сказать в C #. Спасибо.

$TMPFILE = "xxx.tmp";
if (! -f STDIN) {
  open TMPFILE, "> $TMPFILE"
    or die "Couldn't open `$TMPFILE' for writing: $!; aborting";
  print TMPFILE while <STDIN>;
  close TMPFILE;
  open STDIN, "< $TMPFILE"
    or die "Couldn't open `$TMPFILE' for reading: $!; aborting";
  unlink $TMPFILE;
}

Ответы [ 2 ]

3 голосов
/ 18 апреля 2010

Код читает все от STDIN (равно Console.In) до EOF во временный файл, а затем перенаправляет STDIN в этот временный файл. В C # вы перенаправляете с помощью метода Console.SetIn ().

2 голосов
/ 18 апреля 2010

Если STDIN не подключен к обычному файлу, он открывает временный файл, копирует из стандартного ввода во временный файл (до EOF), а затем подключает STDIN для чтения из этого файла. Предположительно, он делает это, потому что позже он хочет иметь возможность seek на STDIN, и вы не можете искать специальный файл.

-f STDIN - true, если STDIN подключен к обычному файлу, и false, если он подключен к специальному файлу (например, консоли или каналу).

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