From: Dustin Sallings <dustin@spy.net>
To: David Fox <david.fox@lindows.com>
Cc: Caml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] GC and file descriptors
Date: Wed, 12 Nov 2003 20:09:06 -0800 [thread overview]
Message-ID: <1F8BACD0-158F-11D8-982B-000393CB0F1E@spy.net> (raw)
In-Reply-To: <3FB2DBEB.40806@lindows.com>
> Dustin Sallings wrote:
>
>>
>> I keep ending up with somewhat awkward structures to close files
>> I've opened. Does the GC take care of any of this type of thing?
On Nov 12, 2003, at 17:18, David Fox wrote:
> I might start with this
>
> let for_process_output f cmd =
> let r = Unix.open_process_in cmd in
> let result = f r in
> Unix.close_process_in r;
> result
>
> then
>
> let tput x = for_process_output (fun r -> input r buf 0 8) ("tput " ^
> x)
>
> at which point you start thinking about exception handling...
Well, I didn't see the close_process thing, but that made things a bit
worse. My goal is to capture the output of a command with each of two
args. I currently have this:
exception SubprocessError of string;;
(* Get a string from the tput command. *)
let tput x =
let r = Unix.open_process_in ("tput " ^ x)
and buf = String.create 8 in
let len = input r buf 0 8 in
let status = Unix.close_process_in r in
begin
match status with
Unix.WEXITED(st) -> if (st != 0) then
raise (SubprocessError "Non-zero exit status");
| _ -> raise (SubprocessError "Unknown error.");
end;
String.sub buf 0 len
;;
(* The two characters we need. *)
let smso = tput "smso";;
let rmso = tput "rmso";;
This is to give me the equivalent of the following bourne shell:
smso=`tput smso`
rmso=`tput rmso`
Garbage collecting the subprocesses and file descriptors would make
this a bit more straightforward.
--
SPY My girlfriend asked me which one I like better.
pub 1024/3CAE01D5 1994/11/03 Dustin Sallings <dustin@spy.net>
| Key fingerprint = 87 02 57 08 02 D0 DA D6 C8 0F 3E 65 51 98 D8 BE
L_______________________ I hope the answer won't upset her. ____________
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2003-11-13 4:09 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-13 0:50 Dustin Sallings
2003-11-13 1:18 ` David Fox
2003-11-13 4:09 ` Dustin Sallings [this message]
2003-11-14 13:42 ` Damien Doligez
2003-11-14 14:57 ` Christophe Raffalli
2003-11-14 20:24 ` Dmitry Bely
2003-11-14 20:54 ` Eric Dahlman
2003-11-14 22:21 ` Brian Hurt
2003-11-14 21:36 ` John J Lee
2003-11-14 21:48 ` Brian Hurt
2003-11-15 1:47 ` Dmitry Bely
2003-11-15 2:25 ` Max Kirillov
2003-11-15 2:49 ` Mike Furr
2003-11-16 4:09 ` [Caml-list] Bugs from ignoring errors from close (was Re: GC and file..) Tim Freeman
2003-11-15 2:58 ` [Caml-list] GC and file descriptors David Brown
2003-11-17 14:19 ` Damien Doligez
2003-11-17 18:18 ` skaller
2003-11-14 18:35 ` Dustin Sallings
2003-11-15 14:16 ` skaller
2003-11-15 15:56 ` Ville-Pertti Keinonen
2003-11-15 17:30 ` skaller
2003-11-15 20:31 ` Martin Berger
2003-11-16 19:19 ` Brian Hurt
2003-11-17 18:15 ` skaller
2003-11-17 19:26 ` Aleksey Nogin
2003-11-18 13:49 ` skaller
2003-11-18 17:51 ` Dustin Sallings
2003-11-18 20:17 ` Aleksey Nogin
2003-11-20 7:36 ` Florian Hars
2003-11-17 21:20 ` Brian Hurt
2003-11-17 23:02 ` John J Lee
2003-11-18 12:05 ` Ville-Pertti Keinonen
2003-11-18 15:19 ` skaller
2003-11-18 18:10 ` John J Lee
2003-11-18 17:55 ` skaller
2003-11-18 20:02 ` Ville-Pertti Keinonen
2003-11-18 21:20 ` John J Lee
2003-11-19 12:25 ` skaller
2003-11-19 13:55 ` Ville-Pertti Keinonen
2003-11-19 14:26 ` Samuel Lacas
2003-11-19 14:47 ` skaller
2003-11-18 15:28 ` skaller
2003-11-18 18:00 ` John J Lee
2003-11-18 22:28 ` Brian Hurt
2003-11-18 23:07 ` John J Lee
2003-11-18 23:22 ` Benjamin Geer
2003-11-19 1:49 ` Martin Berger
2003-11-19 3:57 ` Dustin Sallings
2003-11-19 13:35 ` skaller
2003-11-19 13:00 ` skaller
2003-11-19 13:02 ` skaller
2003-11-19 17:36 ` Brian Hurt
2003-11-20 5:14 ` skaller
2003-11-20 7:37 ` David Brown
2003-11-18 15:12 ` skaller
2003-11-18 16:49 ` Martin Berger
2003-11-18 17:46 ` skaller
2003-11-19 1:33 ` Martin Berger
2003-11-19 3:19 ` Design by Contract, was " Brian Hurt
2003-11-19 2:57 ` Jacques Carette
2003-11-19 13:27 ` skaller
2003-11-19 14:41 ` Martin Berger
2003-11-19 16:54 ` Richard Jones
2003-11-19 17:18 ` Damien Doligez
2003-11-19 21:45 ` Richard Jones
2003-11-19 23:09 ` Benjamin Geer
2003-11-20 0:50 ` Nicolas Cannasse
2003-11-20 9:42 ` Benjamin Geer
2003-11-19 18:03 ` Martin Berger
2003-11-18 18:26 ` Benjamin Geer
2003-11-18 19:24 ` Xavier Leroy
2003-11-18 23:49 ` Benjamin Geer
2003-11-19 1:36 ` Martin Berger
2003-11-19 2:28 ` Nicolas Cannasse
2003-11-19 3:26 ` Brian Hurt
2003-11-19 11:44 ` Martin Berger
2003-11-19 17:29 ` Brian Hurt
2003-11-20 5:17 ` skaller
2003-11-20 16:13 ` Brian Hurt
2003-11-19 13:33 ` skaller
2003-11-19 17:01 ` Richard Jones
2003-11-22 2:39 ` [Caml-list] AutoMLI (Was: GC and file descriptors) Jim
2003-11-19 17:43 ` [Caml-list] GC and file descriptors Brian Hurt
2003-11-20 5:05 ` skaller
2003-11-19 1:33 ` Martin Berger
2003-11-19 2:47 ` Benjamin Geer
2003-11-18 22:23 ` Brian Hurt
2003-11-19 13:00 ` skaller
2003-11-17 22:37 ` OCaml popularity [was: Re: [Caml-list] GC and file...] John J Lee
2003-11-18 1:02 ` [Caml-list] Re: GC and file descriptors Jed Davis
2003-11-13 1:19 ` [Caml-list] " Nicolas George
[not found] ` <87smkstkhg.fsf@igloo.phubuh.org>
[not found] ` <347A7A46-1612-11D8-8F93-000393CFE6B8@spy.net>
2003-11-13 20:18 ` Mikael Brockman
[not found] <20031118232227.GA8437@swordfish>
[not found] ` <Pine.LNX.4.44.0311182039440.5009-100000@localhost.localdomain>
2003-11-20 6:35 ` Matt Gushee
2003-11-21 16:44 ` skaller
2003-11-21 22:17 Gregory Morrisett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1F8BACD0-158F-11D8-982B-000393CB0F1E@spy.net \
--to=dustin@spy.net \
--cc=caml-list@inria.fr \
--cc=david.fox@lindows.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox