Comments (1)
However, it always returns the parent.
The child process will be spawned in your code and execute sh
, you should be able to see it in your monitor app (search the process name sh
), would you like to elaborate on it a bit what do you mean by "it always returns the parent"?
Here is a program to prove that the child process exists:
I am using Nix from git, where the return value of
forkpty()
differs from the one in Nix 0.28.0
use std::{thread::sleep, time::Duration};
use nix::pty::{forkpty, ForkptyResult};
fn main() {
match unsafe {forkpty(None, None)}.unwrap() {
ForkptyResult::Parent { child: _child, master: _master} => {
// don't drop the master side for 1 second so that child process can
// get its job done
sleep(Duration::from_secs(1));
}
ForkptyResult::Child => {
std::fs::write("hello_from_child", "Hi").unwrap();
}
};
}
$ stat hello_from_child
stat: cannot statx 'hello_from_child': No such file or directory
$ ./target/debug/rust
$ stat hello_from_child
File: hello_from_child
Size: 2 Blocks: 8 IO Block: 4096 regular file
Device: 0,40 Inode: 10896442 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ steve) Gid: ( 1000/ steve)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2024-05-19 20:04:39.014018425 +0800
Modify: 2024-05-19 20:04:39.014018425 +0800
Change: 2024-05-19 20:04:39.014018425 +0800
Birth: 2024-05-19 20:04:39.014018425 +0800
the function returns the parent if it runs into an error
No, the interface exposed by Nix returns Err(errno)
, the C raw interface would return -1 and set errno
to indicate the error.
from nix.
Related Issues (20)
- API request: sync on MacOS
- test_initgroups fails.
- MSRV 1.77.0 TODO HOT 1
- RecvMsg.cmsg() should check MSG_CTRUNC HOT 2
- ControlMessageOwned::UdpGroSegments size mismatches the actual size HOT 1
- Test `statfs_call()` fails on macOS because `statfs()` and `statvfs()` report different number of i-nodes HOT 4
- Question about why cfg(linux_android) is used in places when #[cfg(target_os = "linux")] seems fine. HOT 1
- ptctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, addr, len, invalid_name) returns EFAULT rather than EINVAL under QEMU HOT 8
- EventFd::defuse doesn't work HOT 6
- Shouldn't set `#[deny(warnings)]` outside of CI HOT 1
- warn that nix::sys::signalfd::siginfo is not siginfo_t HOT 2
- Some Nix wrappers are not signal-safe HOT 2
- Nix 0.30.0 TODO
- Test `test_timer::alarm_fires()` times out
- Skip the Haiku CI as Rust std is broken on it
- `ptrace::getregs` & `ptrace::getregset` may lead to UB of uninitialized data read HOT 4
- can we use this library to do fuse(file systems in user space)? HOT 3
- Allow `sendmsg` to accept a preallocated `Vec` HOT 1
- ModuleInitFlags is missing MODULE_INIT_COMPRESSED_FILE HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nix.