Difference between revisions of "Interacting with the enviroment"
From Organic Design wiki
m |
m |
||
Line 1: | Line 1: | ||
[[Category:C]][[Category:Peerix]] | [[Category:C]][[Category:Peerix]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Enviroment variables== | ==Enviroment variables== | ||
It's quite simple to read and write environment variables from C: | It's quite simple to read and write environment variables from C: | ||
Line 47: | Line 40: | ||
[[+Pipe.c]] | [[+Pipe.c]] | ||
+ | |||
+ | =bash= | ||
+ | To connect to a bash shell you can simply do: | ||
+ | <pre> | ||
+ | cat > bash | ||
+ | </pre> | ||
+ | This will create an [[w:Asynchronous|asynchronous]] connection to the bash process. |
Revision as of 22:06, 20 March 2007
Enviroment variables
It's quite simple to read and write environment variables from C:
char *envvar; if(envvar = getenv("FOO")) printf( "FOO=%s\n", envvar ); putenv("FOO=bar");
When you call a child process a copy of the enviroment is passed to this process. However, if the process changes enviroment variables, these changes will be lost once the process terminates.
The parent C program:
putenv("FOO=bar"); system("sh printenv"); if(envvar = getenv("FOO")) printf( "FOO=%s\n", envvar );
Executes a shell script (printenv) with system()
echo "printenv: $FOO" FOO=bar2
The resulting output is:
printenv: bar FOO=bar
Pipes
bash
To connect to a bash shell you can simply do:
cat > bash
This will create an asynchronous connection to the bash process.