Well, your program needs to handle the error somehow if there is one. Something like this could work (though syntax may be wrong):
let file = match io::result(|| File::open(&Path::new("/some/path")) {
Ok(f) => f /* i.e. file is set to f */
Err(e) => fail!("cannot open file")
}
Alternatively make your function return some "error value" instead of using
the fail!(...) macro.
On Sunday 03 November 2013 10:19:51 John Mija wrote:
> Hi Alex,
>
> I had seen an example at
> http://static.rust-lang.org/doc/master/std/rt/io/file/fn.open.html which
> closes the file at the end of a block.
>
> I simply wants to open a file, checking if there is any error, for later
> to can read it line by line until the end of file. I was wrong using the
> term "closing its file descriptor".
>
> El 03/11/13 05:42, Alex Crichton escribió:
> > This api is a little in flux (hopefully #10179 will land soon), but
> > I'm not quite sure what you mean about keeping the file descriptor
> > open. If there was an error opening the file, then a file descriptor
> > was never allocated and there's nothing to keep open. Regardless, once
> > my pull request lands, your example would look something like:
> >
> > use std::rt::io;
> > use std::rt::io::File;
> >
> > match io::result(|| File::open(&Path::new("/some/path")) {
> >
> > Ok(file) => { /* file was successfully opened, it existed */ }
> > Err(e) => { /* file couldn't be opened, error contained in e */ }
> >
> > }
> >
> > On Sat, Nov 2, 2013 at 5:34 PM, John Mija <[email protected]> wrote:
> >> How to check an error at opening a file but without closing its file
> >> descriptor?
> >>
> >> use std::path;
> >> use std::rt::io;
> >> use std::rt::io::file;
> >>
> >> let filename = "/some/path";
> >> let f = file::open(&path::Path::new(filename), io::Open, io::Read);
> >> _______________________________________________
> >> Rust-dev mailing list
> >> [email protected]
> >> https://mail.mozilla.org/listinfo/rust-dev
>
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
