Why doesn't rust's std::process::Command.output() close my input stream for interactive programs?Why doesn't my user input from stdin match correctly?Why doesn't this Rust program crash?Why doesn't a 'static function argument make something live for the entire program?Why doesn't the signature of std::str::parse use a trait bound?Why is splitting a Rust's std::collections::LinkedList O(n)?How to use the Rust type system to prevent output to stdout?
What is the offset in a seaplane's hull?
Can a Warlock become Neutral Good?
Today is the Center
Why was the small council so happy for Tyrion to become the Master of Coin?
How can I prevent hyper evolved versions of regular creatures from wiping out their cousins?
How is it possible to have an ability score that is less than 3?
How do we improve the relationship with a client software team that performs poorly and is becoming less collaborative?
How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?
Collect Fourier series terms
Why "Having chlorophyll without photosynthesis is actually very dangerous" and "like living with a bomb"?
Which models of the Boeing 737 are still in production?
How to write a macro that is braces sensitive?
Why not use SQL instead of GraphQL?
How to find program name(s) of an installed package?
Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?
Font hinting is lost in Chrome-like browsers (for some languages )
Is a conference paper whose proceedings will be published in IEEE Xplore counted as a publication?
Arthur Somervell: 1000 Exercises - Meaning of this notation
Why don't electron-positron collisions release infinite energy?
Test if tikzmark exists on same page
US citizen flying to France today and my passport expires in less than 2 months
Do I have a twin with permutated remainders?
Smoothness of finite-dimensional functional calculus
How can bays and straits be determined in a procedurally generated map?
Why doesn't rust's std::process::Command.output() close my input stream for interactive programs?
Why doesn't my user input from stdin match correctly?Why doesn't this Rust program crash?Why doesn't a 'static function argument make something live for the entire program?Why doesn't the signature of std::str::parse use a trait bound?Why is splitting a Rust's std::collections::LinkedList O(n)?How to use the Rust type system to prevent output to stdout?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
Here's an example. I'll try and use my Rust program to wrap scp:
fn spawn_scp(host: &str, path: &str) -> std::process::Output
let a = vec![format!(":",host, path), format!("-gc.log",host)];
let output = Command::new("scp")
.args(&a)
.output()
.ok().expect("Failed to execute.");
return output;
If I pass in an unknown host and some path, scp's supposed to give me the host's key fingerprint and then ask me for the password, which it does:
Are you sure you want to continue connecting (yes/no)
And it lets me type in "yes" and continue. But from the std::process::Command docs:
Stdin is not inherited from the parent and any attempt by the child process to read from the stdin stream will result in the stream immediately closing.
Why does it let me type in "yes" instead of closing?
rust
add a comment |
Here's an example. I'll try and use my Rust program to wrap scp:
fn spawn_scp(host: &str, path: &str) -> std::process::Output
let a = vec![format!(":",host, path), format!("-gc.log",host)];
let output = Command::new("scp")
.args(&a)
.output()
.ok().expect("Failed to execute.");
return output;
If I pass in an unknown host and some path, scp's supposed to give me the host's key fingerprint and then ask me for the password, which it does:
Are you sure you want to continue connecting (yes/no)
And it lets me type in "yes" and continue. But from the std::process::Command docs:
Stdin is not inherited from the parent and any attempt by the child process to read from the stdin stream will result in the stream immediately closing.
Why does it let me type in "yes" instead of closing?
rust
are you surescphas read your input ? That not because your terminal let you write thing thatscpcan read them.scpcould also readstderrfor interactive input that a common idiom: unix.stackexchange.com/questions/452809/…
– Stargateur
Mar 21 at 23:56
add a comment |
Here's an example. I'll try and use my Rust program to wrap scp:
fn spawn_scp(host: &str, path: &str) -> std::process::Output
let a = vec![format!(":",host, path), format!("-gc.log",host)];
let output = Command::new("scp")
.args(&a)
.output()
.ok().expect("Failed to execute.");
return output;
If I pass in an unknown host and some path, scp's supposed to give me the host's key fingerprint and then ask me for the password, which it does:
Are you sure you want to continue connecting (yes/no)
And it lets me type in "yes" and continue. But from the std::process::Command docs:
Stdin is not inherited from the parent and any attempt by the child process to read from the stdin stream will result in the stream immediately closing.
Why does it let me type in "yes" instead of closing?
rust
Here's an example. I'll try and use my Rust program to wrap scp:
fn spawn_scp(host: &str, path: &str) -> std::process::Output
let a = vec![format!(":",host, path), format!("-gc.log",host)];
let output = Command::new("scp")
.args(&a)
.output()
.ok().expect("Failed to execute.");
return output;
If I pass in an unknown host and some path, scp's supposed to give me the host's key fingerprint and then ask me for the password, which it does:
Are you sure you want to continue connecting (yes/no)
And it lets me type in "yes" and continue. But from the std::process::Command docs:
Stdin is not inherited from the parent and any attempt by the child process to read from the stdin stream will result in the stream immediately closing.
Why does it let me type in "yes" instead of closing?
rust
rust
asked Mar 21 at 23:44
iveoriveor
1
1
are you surescphas read your input ? That not because your terminal let you write thing thatscpcan read them.scpcould also readstderrfor interactive input that a common idiom: unix.stackexchange.com/questions/452809/…
– Stargateur
Mar 21 at 23:56
add a comment |
are you surescphas read your input ? That not because your terminal let you write thing thatscpcan read them.scpcould also readstderrfor interactive input that a common idiom: unix.stackexchange.com/questions/452809/…
– Stargateur
Mar 21 at 23:56
are you sure
scp has read your input ? That not because your terminal let you write thing that scp can read them. scp could also read stderr for interactive input that a common idiom: unix.stackexchange.com/questions/452809/…– Stargateur
Mar 21 at 23:56
are you sure
scp has read your input ? That not because your terminal let you write thing that scp can read them. scp could also read stderr for interactive input that a common idiom: unix.stackexchange.com/questions/452809/…– Stargateur
Mar 21 at 23:56
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55290843%2fwhy-doesnt-rusts-stdprocesscommand-output-close-my-input-stream-for-inte%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55290843%2fwhy-doesnt-rusts-stdprocesscommand-output-close-my-input-stream-for-inte%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
are you sure
scphas read your input ? That not because your terminal let you write thing thatscpcan read them.scpcould also readstderrfor interactive input that a common idiom: unix.stackexchange.com/questions/452809/…– Stargateur
Mar 21 at 23:56