rust-lang / rust-lang/rust

Tracking Issue for `std::os::fd::CommandExt::fd`

Open
#144,989 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

C-tracking-issue S-tracking-unimplemented T-libs
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Feature gate: #![feature(command_pass_fds)]

This is a tracking issue for passing file descriptors in std::comand::Command with std::os::fd::CommandExt::fd.

Public API
// std::os::unix::process

pub trait CommandExt {
    fn fd(&mut self, new_fd: RawFd, old_fd: impl Into<OwnedFd>);
}

impl CommandExt for std::process::Command { ... }

Note: if a lifetime can be introduced to std::process::Command at any time in the future, we should make this use BorrowedFd.

Steps / History

(Remember to update the S-tracking-* label when checking boxes.)

  • Implementation: None yet
  • Final comment period (FCP)^1
  • Stabilization PR
Unresolved Questions
  • Whether to name the function fd or pass_fd
  • Is this also available on cfg(any(target_os = "hermit", target_os = "trusty", target_os = "wasi"))?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the proposed std::os::unix::process::CommandExt API and read the linked feature request and API change proposal. The implementation is not started; completion requires resolving the function-name and platform-availability questions, followed by implementation, FCP, and a stabilization PR.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.