跳轉到內容

Aros/開發者/文件/裝置/控制檯

來自華夏公益教科書,開放世界開放書籍
Aros 華夏公益教科書導航欄
Aros 使用者
Aros 使用者文件
Aros 使用者常見問題解答
Aros 使用者應用程式
Aros 使用者 DOS Shell
Aros/使用者/AmigaLegacy
Aros 開發文件
Aros 開發者文件
從 AmigaOS/SDL 移植軟體
針對 Zune 初學者
Zune .MUI 類
針對 SDL 初學者
Aros 開發者構建系統
特定平臺
Aros x86 完整系統 HCL
Aros x86 音訊/影片支援
Aros x86 網路支援
Aros Intel AMD x86 安裝
Aros 儲存支援 IDE SATA 等
Aros Poseidon USB 支援
x86-64 支援
Motorola 68k Amiga 支援
Linux 和 FreeBSD 支援
Windows Mingw 和 MacOSX 支援
Android 支援
Arm Raspberry Pi 支援
PPC Power Architecture
其他
Aros 公共許可證

應該有 Shell 支援 “_pchar” 和 “_mchar” 變數。如果可以新增 “_pchar” 和 “_mchar” 支援,那麼可以新增 C:Pipe 命令來支援它。此外:Open("PIPE:*",...) 現在開啟一個自動命名的管道。

使用 NameFromFH() 獲取其對面的名稱。例如,實現類似於 Unix pipe() 呼叫。

BOOL Pipe(BPTR pipe[2])
{
  char buff[64];
  pipe[1]=Open("PIPE:*", MODE_NEWFILE);
  if (pipe[1]) {
      char buff[64];
      if (NameFromFH(fh_write, buff, sizeof(buff)) != 0) {
          pipe[0] = Open(buff, MODE_OLDFILE);
          if (pipe[0])
              return DOSTRUE;
      }
      Close(pipe[1]);
  }
  return DOSFALSE;
}

我進行了一些嘗試,但 AOS “_mchar” 似乎有些奇怪(OS3.9+BB2)。

設定 “_mchar” 和包含 “_mchar” 字元的命令列:PIPE 被插入為命令(就像 “_pchar” 一樣)。即使包含 “_mchar” 的單個 Shell 行也會執行 PIPE。

我甚至沒有 C:PIPE,所以我只得到了 PIPE 未找到錯誤...這應該如何工作?

這意味著實際上是 C:PIPE 處理 “_pchar” 和 “_mchar”,而不是 Shell?Shell 的唯一任務是檢查命令列中是否找到 “_mchar” 或 “_pchar”,如果找到,則在命令開頭插入 PIPE 嗎?

我可以實現 Shell 更改,但我首先需要知道如何處理 “_mchar”。它依賴於新的 "PIPE:*" 自動命名管道功能,因此如果有人有興趣將其移植回 ABI_V0,請記住這一點。

PIPE 似乎是一個 Shell 擴充套件,從未在 2.0 中完全完成,並在後續版本中被遺忘。

我注意到 C:Type 和 C:Sort 無法以標準輸入作為輸入。

<snip> 1> 管道列表:SYS: NOHEAD | Sort IN: OUT: | More

請注意 Sort 需要 `IN:' 和 `OUT:'。這些裝置實際上不存在,但 Pipe 命令使用 PIPE: 模擬它們。這是必需的,因為 C:Sort 無法使用 "標準 IO",而堅持使用檔案。</snip>

我想這也需要實現。

華夏公益教科書