1.5.12: TERM environment reset to "cygwin" after fork()

B. Scott Smith scott@smithdomain.com
Fri Dec 3 21:21:00 GMT 2004


Hi all,

Version: CYGWIN_NT-5.0 -- 1.5.12(0.116/4/2) -- i686 unknown unknown Cygwin

I set the TERM environment variable in my application by calling 
setenv(). A subsequent call to getenv("TERM") yields the expected value. 
However, after performing a fork(), the call to getenv("TERM") returns 
"cygwin". This is the case for both the parent and the child.

-- I have found a big clue. If I set the TERM variable in the Windows 
environment prior to running my program (it can be set to anything at 
all), it works as expected.

Any ideas?

Thanks
------
Code snippet:

    setenv("TERM", "ansi", 1);
    /* ... blah, blah, ... */
    printf("TERM is: %s\n", getenv("TERM"));  /* prints "ansi" as expected */
    int i = fork();
    if (i < 0)
        printf("Bad Business...");
    else if ( i > 0 )
        printf("parent TERM is: %s\n", getenv("TERM"));  /* prints "cygwin" */
    else
        printf("child  TERM is: %s\n", getenv("TERM"));  /* prints "cygwin" */




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list