Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Apr 2004 23:25:28 -0700
From:      Greg Shenaut <gkshenaut@ucdavis.edu>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        Craig Rodrigues <rodrigc@crodrigues.org>
Subject:   Re: C code for parsing rc.conf?
Message-ID:  <B0676729-8EA5-11D8-9EC1-000A9590A44E@ucdavis.edu>
In-Reply-To: <407DD3FE.5010303@kientzle.com>
References:  <20040414215601.GA3923@crodrigues.org> <407DD3FE.5010303@kientzle.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 14, 2004, at 5:14 PM, Tim Kientzle wrote:

> Craig Rodrigues wrote:
>> Is there a C library that comes with FreeBSD which
>> can be used to parse, append to, and validate
>> rc.conf?
>> I'd like to customize some of the settings in /etc/rc.conf
>> with my own GUI-based program.  It's not too hard
>> to write something on my own, but I was wondering
>> if a reusable library existed in FreeBSD 4.x or 5.x for doing this.
>
> There was a detailed discussion of this topic about a year
> ago.  Here is how to obtain the current settings from rc.conf
> from within a C program:
>
>  * Clear the current environment
>
>  * popen() a shell command that sources rc.conf, then
>    runs printenv
>
>  * read and parse the output of printenv
>
> The basic idea is to just let the shell do
> the work for you.

It's a little more awkward, but another way to do this is to use a 
shell shim
along the lines of

#!/bin/sh
. /etc/whatever
exec /your/program

The shell's environment will be exported to your program's environment.

Greg Shenaut



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B0676729-8EA5-11D8-9EC1-000A9590A44E>