I wrote:
main (int argn, char **argv, char **envv) { for ( ; *envv ; ++envv) { if (!strncmp(*envv,"PGP",3)) { char *c=*envv; while (*c) *c++=' '; } /* end of if */ } /* end of for */ system("printenv"); sleep(10); }
And I should've enclosed it in #ifdef STUPID ... #endif. I misread the putenv(3) man page and didn't realize that you could just use putenv("PGPPATH="); putenv("PGPPASS="); To wipe those variables out of your environment... They still might get caught by a 'ps -eaxuww' but chances are slim. Is it posible to alter your arguments so they're not visible to 'ps -auxww'? Well as a matter of fact, it does seems to work on my sparcstation: main (int argn, char **argv, char **envv) { system("ps -uww"); for (;*argv;++argv) { while (**argv) { *(*argv)++ = ' '; } /* end of while */ } /* end of for */ puts("--------------------------------"); system("ps -uww"); } Not elegant, but that's what makes it a GLP (grungy little program). So, is there a more elegant way to do this? How portable is it? Finally, of how much use is it? Stig /* Jonathan Stigelman, Stig@netcom.com, PGP public key on request */ /* fingerprint = 32 DF B9 19 AE 28 D1 7A A3 9D 0B 1A 33 13 4D 7F */