我在 Ubuntu 22.04 上使用 .NET 6。以下 Bash 代碼的等效 C# 代碼是什么?
echo 'Hello, World!' >&3
通常,在 C# 中,我會使用類似Console.WriteLine("Hello, World!");寫入標準輸出的代碼。但是在這里,我需要寫入檔案描述符 3 而不是標準輸出。
我能夠找到一些 Stack Overflow 的答案,但它們已經很老了,并且處理的是我認為不適用于我正在嘗試做的事情的 Windows API。
我也應該澄清一下,對于我的用例,在我啟動 .NET 行程時將出色的輸出重定向到另一個檔案描述符不是一種選擇。這是因為我需要能夠為一個目的寫入 stdout,為另一個目的寫入 stderr,為另一個目的寫入檔案描述符 3。一共三個目的。這是因為該行程必須能夠由以這些方式處理標準輸出、標準錯誤和檔案描述符 3 的框架啟動。它需要兼容。
uj5u.com熱心網友回復:
你應該能夠通過寫信來實作這一點/proc/self/fd/3
使用 StreamWriter:
using (StreamWriter outputFile = new StreamWriter("/proc/self/fd/3"))
{
outputFile.WriteLine("Test");
}
否則,您可以使用上面參考的命令或此命令對 echo 進行系統呼叫。
Process.Start(@"echo Test > /proc/self/fd/3");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/529038.html
