Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

pty_close_inherited_fds() is undefined on any non-Linux, non-macOS platform (build break on FreeBSD/OpenBSD too)

未关闭
#962 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
75/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
cpp

调研方向

从 src/unix/pty.cc 中 pty_close_inherited_fds() 的平台条件定义及其在 PtyFork 子分支中的调用开始。比较 Linux、macOS 和共享的非 macOS 路径,然后验证所选的可移植处理方式能够为 FreeBSD、OpenBSD 或其他受支持的 POSIX 平台编译,且不存在未定义的声明。

由索引模型根据 Issue 内容生成。

描述

src/unix/pty.cc defines pty_close_inherited_fds() only under #if defined(__linux__), but calls it unconditionally in PtyFork's child branch for every platform that isn't __APPLE__ (i.e. the shared #else branch used by Linux, FreeBSD, OpenBSD, and anything else binding.gyp claims to support). Compiling on FreeBSD/OpenBSD (or any other POSIX platform) should fail with 'pty_close_inherited_fds' was not declared in this scope.

Suggested minimal fix: add a portable fallback (e.g. getrlimit(RLIMIT_NOFILE) + a close() loop from fd 3) under a generic #else branch, or guard the call site itself.

Found while porting node-pty to IBM i PASE (AIX-derived) — see the companion issue about AIX/PASE support for context.

主要语言
TypeScript
星标
2k
派生
337
平均合并
21 小时 58 分钟
30 天内合并 PR
3

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

microsoft/node-pty 的其他 Issue

查看 microsoft/node-pty 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。