2010-04-17 115 views
2

我真的不明白的Perl,所以我想知道,如果有人能夠給我一個它是什麼這個代碼是問STDIN的,以及如何在C#中說,這個提示。 謝謝。這段代碼的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; 
} 

回答

3

的代碼讀取STDIN一切(等於Console.In),直到EOF到一個臨時文件,然後重定向STDIN到臨時文件。在C#中,使用Console.SetIn()方法重定向。

2

如果STDIN未連接到一個普通的文件,它打開一個臨時文件,從標準輸入複製到臨時文件(高達EOF),然後連接STDIN從該文件中讀取。據推測,它是這樣做的,因爲後來它想要在STDIN上能夠seek,並且你不能尋找特殊文件。

-f STDIN如果STDIN連接到普通文件,則爲true;如果連接到特殊文件(如控制檯或管道),則爲false。

相關問題