Date: Wed, 1 Jan 2003 20:23:00 -0800 From: Jordan K Hubbard <jkh@queasyweasel.com> To: kientzle@acm.org Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Reading rc.conf from C programs? Message-ID: <E10CAB05-1E09-11D7-A2B1-000393BB9222@queasyweasel.com> In-Reply-To: <3E1362FD.6070001@acm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
There's no canned code for doing this, though sysinstall has some very basic parsing routines for reading/writing rc.conf variables you could certain crib from. It sounds like that "thefish" utility someone else mentioned has an even more exotic parser, though I haven't compared the two implementations. The readConfigFile() routine in sysinstall simply reads the configuration data into a fixed-size array, so it's pretty braindead. - Jordan On Wednesday, January 1, 2003, at 01:51 PM, Tim Kientzle wrote: > I'm trying to figure out how to read and use > /etc/rc.conf configuration variables from within > a C program. The standard technique, of course, > is to use a shell-script wrapper and pass the > extracted values to the C program on the command > line. But I want access to _all_ of the rc.conf > variables, not just a couple of them, and I don't > see any reasonable way to accomplish that with a > shell wrapper. > > One approach would embed /bin/sh and drive that > from my program. (E.g., tell the embedded interpreter > to read and interpret the config file, then > programmatically query the config variables.) > It's not clear to me how simple it would be to > build an embeddable /bin/sh. > > Alternatively, I suppose I could fire up /bin/sh via > popen and drive it from my program (passing 'echo $var' > to query variables, etc.). But I'm not entirely > convinced this would work; what if a variable value has > a newline in it, for example? > > Has anyone done anything like this before? > > Thanks, > > Tim Kientzle > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > -- Jordan K. Hubbard Engineering Manager, BSD technology group Apple Computer To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E10CAB05-1E09-11D7-A2B1-000393BB9222>