跳转到内容

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>

我想这也需要实现。

华夏公益教科书