[GRASS-user] Setting GRASS environment variable in a C program

Glynn Clements glynn at gclements.plus.com
Fri May 21 10:59:21 EDT 2010


rabotin wrote:

> i'm trying to access to my grass data without launching an active grass 
> session with a c program. I'm encoutering issues with the GRASS 
> environment variables definitions.

>     // Setting the grass environment
>     G__setenv("GISDBASE","/home/rabotin/grassdata");
>     G__setenv("LOCATION_NAME","Roujan");
>     G__setenv("MAPSET","PERMANENT");
>     G__setenv("MAPSET","simon9");
> 
>   
>     G_gisinit(argv[0]);
>     std::cout << G_getenv(G_gisdbase()) << std::endl;
>     std::cout << G_getenv(G_location()) << std::endl;
>     std::cout << G_getenv(G_mapset()) << std::endl;
> }
> 
> When launshing this script in command terminal (outside an active grass 
> session), I've got a segmentation fault.

You need to set the GISRC environment variable before you can access
GRASS settings with G_getenv() or G_setenv(). You will also need to
set GISBASE to the root directory of the GRASS installation so that
data files can be located.

There is a list of environment variables used by GRASS in the file
$GISBASE/docs/html/variables.html.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-user mailing list