Date: Sun, 17 Sep 2000 20:36:16 +0200 From: Peter van Dijk <peter@dataloss.net> To: current@FreeBSD.ORG Subject: Re: superduperopen(3) (was: Fdescfs updates--coming to a devfs near you!) Message-ID: <20000917203616.B11424@dataloss.net> In-Reply-To: <20000916100447.I27034@speedy.gsinet>; from Gerhard.Sittig@gmx.net on Sat, Sep 16, 2000 at 10:04:47AM %2B0200 References: <phk@critter.freebsd.dk> <200009160249.e8G2n3n02415@hak.lan.Awfulhak.org> <20000916100447.I27034@speedy.gsinet>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Sep 16, 2000 at 10:04:47AM +0200, Gerhard Sittig wrote: > <crazy mode on> > > How much sense does it make to think about implementing tee and > select methods this way? Like "open file1 and file2 and write to > both of them whatever I give to you" and "give me data coming in > from whatever file is in this set"? The only problem is to > determine available characters to separate these names. '+' as > well as ':', ',' and ';' are perfectly valid characters for > constructing filenames. '&' seems to be too, but could be used > rarely enough. And the split upon these new separators actually > should be done only when the appropriate SDO_ flags are passed. > > e.g. > superduperopen("file1&file2", "a+", SDO_TEEFILES) > superduperopen("file1&file2", "r" , SDO_SELECT) FILE *superduperopen(char *files[], char *type, int flags); [snip] > parameters) have to pass certain checks. Nobody should try to > read from "|command". And I cannot see any use for "write to > whatever descriptor is ready to write to first" as would result > from "w" and SDO_SELECT. But they should be able to read from "command|", ofcourse. That feature should be in there too :) I do see a use to "write to whatever descriptor is ready first". It could be used for a very simple multithreading-like implementation. Spawn 8 child processes, attach them to one stream with superduperopen(), and pass single-byte commands to one that is waiting to handle one. If all 8 are busy, you block, or return something like EAGAIN. This description is very pseudo-something, btw :) > Feel free to correct the flag's data type. I have the feeling > not all int's have 32bits. :) Some other means of storage might int works for open, I doubt whether we need more options than open does :) > be more appropriate while still being easy to combine and to pass > to the function. But I feel strings like "STD,PIPE,TEE" are There's no reason for that. We have a compiler that can parse *unquoted* strings like STD | PIPE | TEE and create single int's out of that. Ain't it wonderful :) > harder to parse and single character notation like the "wt" mode > flags are harder to find (think of) and to read (in terms of > eyeballing the source code) for the sdo case. I do think the "w+" 'n stuff notation in popen sucks. This is our chance to turn those into bitflags too, for superduperopen anyway. Greetz, Peter -- dataloss networks '/ignore-ance is bliss' - me To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000917203616.B11424>