Sponsored Content
Full Discussion: setenv.
Top Forums UNIX for Advanced & Expert Users setenv. Post 302265420 by Franklin52 on Sunday 7th of December 2008 07:16:03 AM
Old 12-07-2008
Use the popen function, this is an example to set a environment variable with a value fetched with a shell command:

Code:
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
        FILE *pipein;
        char readbuf[80], Myvar[80];

        if ((pipein = popen("pwd", "r")) == NULL)

        {
                perror("popen");
                exit(1);
        }

        fgets(readbuf, 80, pipein);
        close(pipein);

        setenv(Myvar, readbuf, 1);

        printf("%s", getenv(Myvar));

        return(0);

}

Regards
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

setenv Question

I want to add paths to a CLASSPATH variable but if I use the : setenv CLASSPATH /opt all previous entries are erased. How do I append additional entries to a system variable without overwriting the original value. Thanx (3 Replies)
Discussion started by: ianf
3 Replies

2. UNIX for Dummies Questions & Answers

set, setenv

Well first of all I am a real Unix newbie. I am taking a course on it in University. I kind of understand set and setenv but, I think it si something that I should really understand. So I thought that I would try a forum out and see how good you guys really are. The question: Execute the... (1 Reply)
Discussion started by: w6u6f
1 Replies

3. Shell Programming and Scripting

What 's setenv?

Hi Is someone know about "setenv"? where can i find out this one? Regards Myoe (2 Replies)
Discussion started by: myoeminn
2 Replies

4. Shell Programming and Scripting

How do I set permanent setenv !!!

Hello, I just want to know ow I can set permanent pathes or whatever using setenv command. I'm using c shell . regards, me (1 Reply)
Discussion started by: geoquest
1 Replies

5. Shell Programming and Scripting

setenv in script

Is it possible to set environement variable in a script (for example, perl script) so that the variable will be set after exiting the script - in a father shell. (2 Replies)
Discussion started by: kosta_mirkin
2 Replies

6. UNIX for Dummies Questions & Answers

difference between EXPORT and setenv

Hi, Is there any difference between setting an environment variable by EXPORT and by setenv? (3 Replies)
Discussion started by: dexkid
3 Replies

7. Shell Programming and Scripting

setenv error

I am having the following environment setup script. $cat dbenv.sh #! /bin/csh # set history=32 stty sane setenv ORACLE_HOME=/dboracle/orabase/product/10.1.0.3 set ORACLE_BASE=/dboracle/orabase set... (2 Replies)
Discussion started by: rahulrathod
2 Replies

8. UNIX for Dummies Questions & Answers

whats setenv in unix

Hi whats the setenv command in unix..?? i have set the oracle_home path as aa.ii.1 in kron_settings and mentioned setenv oracle_path as aa.ii.2 in user settings. Does this make any changes made to the path name of the oracle_home when i run a scripts in unix..???:( (1 Reply)
Discussion started by: abhi_123
1 Replies

9. Solaris

setenv: cannot add the LD_LIBRARY_PATH

Hi all! I need to add new environment variable. e.g. # setenv LD_LIBRARY_PATH "/usr/ucblib:" # I check:# env LD_LIBRARY_PATH=/usr/ucblib: After rebooting I don't see this variable. Why don't save this variable? Thanks. (5 Replies)
Discussion started by: wolfgang
5 Replies

10. Shell Programming and Scripting

Cshell setenv: Too many arguments.

i have in c-shell set value_str ="one three" set line_seprator = "," set value_and_sperator = "$value_str$line_seprator" setenv STRING_CONCAT $STRING_CONCAT$value_and_sperator and im getting error: setenv: Too many arguments. this is... (1 Reply)
Discussion started by: umen
1 Replies
POPEN(3)						     Linux Programmer's Manual							  POPEN(3)

NAME
popen, pclose - process I/O SYNOPSIS
#include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream); DESCRIPTION
The popen() function opens a process by creating a pipe, forking, and invoking the shell. Since a pipe is by definition unidirectional, the type argument may specify only reading or writing, not both; the resulting stream is correspondingly read-only or write-only. The command argument is a pointer to a null-terminated string containing a shell command line. This command is passed to /bin/sh using the -c flag; interpretation, if any, is performed by the shell. The mode argument is a pointer to a null-terminated string which must be either `r' for reading or `w' for writing. The return value from popen() is a normal standard I/O stream in all respects save that it must be closed with pclose() rather than fclose(). Writing to such a stream writes to the standard input of the command; the command's standard output is the same as that of the process that called popen(), unless this is altered by the command itself. Conversely, reading from a ``popened'' stream reads the com- mand's standard output, and the command's standard input is the same as that of the process that called popen. Note that output popen streams are fully buffered by default. The pclose function waits for the associated process to terminate and returns the exit status of the command as returned by wait4. RETURN VALUE
The popen function returns NULL if the fork(2) or pipe(2) calls fail, or if it cannot allocate memory. The pclose function returns -1 if wait4 returns an error, or some other error is detected. ERRORS
The popen function does not set errno if memory allocation fails. If the underlying fork() or pipe() fails, errno is set appropriately. If the mode argument is invalid, and this condition is detected, errno is set to EINVAL. If pclose() cannot obtain the child status, errno is set to ECHILD. CONFORMING TO
POSIX.2 BUGS
Since the standard input of a command opened for reading shares its seek offset with the process that called popen(), if the original process has done a buffered read, the command's input position may not be as expected. Similarly, the output from a command opened for writing may become intermingled with that of the original process. The latter can be avoided by calling fflush(3) before popen. Failure to execute the shell is indistinguishable from the shell's failure to execute command, or an immediate exit of the command. The only hint is an exit status of 127. HISTORY
A popen() and a pclose() function appeared in Version 7 AT&T UNIX. SEE ALSO
fork(2), sh(1), pipe(2), wait4(2), fflush(3), fclose(3), fopen(3), stdio(3), system(3) BSD MANPAGE
1998-05-07 POPEN(3)
All times are GMT -4. The time now is 03:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy