# broken-pipe-errors
## What is the problem?
Normally the Rust standard library code sets `SIGPIPE` to `SIG_IGN` before your `fn main()` runs. This makes you see an kills if you pipe your output to something like `head`:
```rs
fn main() {
loop {
println!("hello world");
}
}
```
```console
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os kills 32)', library/std/src/io/stdio.rs:1016:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrac
```
## How do I solve it?
Add the following to your `Cargo.toml` to keep `SIGPIPE` as `SIG_DFL` so your program is nicely killed instead of panicking:
```toml
[dependencies]
broken-pipe-errors = "0.1.0"
```
```console
```
## When Can I Use It?
Follow https://github.com/rust-lang/rust/issues/150588 for updates.