Re: DOS program recording it's parameters and environment?

Paul Crawford <[email protected]>
Newsgroups org.kernel.vger.linux-msdos
Message-ID <[email protected]>
Dear Frantisek,
> compiler v1.9 (http://www.openwatcom.org/) for DOS. And there I knock
> to problem - it seems as this compiler not support construction:
>
> int main(int argc, char *argv[], char *envp[])

I think this 3rd argument may be a MS-specific extension, as most C 
programs just have argc & argv in the call to main();

If you change to use the 'environ' variable, that should be pre-defined 
(probably in stdlib.h) and should do the same job. Attached is an 
example that seems to compile & work under C6 DOS compiler and with gcc 
on my Ubuntu 10.04 box.

Regards,
Paul
dosenv.c (text/x-csrc, 470 B)

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

extern char **environ;

int main(int argc, char *argv[])
{
int ii;
FILE *fp;
char **envp = environ;


	fp=fopen("dosenv.txt", "wb");
	if(fp != NULL)
		{
		fprintf(fp, "argc = %d\n", argc);

		for(ii=0; ii<argc; ii++)
			{
			fprintf(fp, "argv[%d] = %s\n", ii, argv[ii]);
			}

		ii=0;
		while(envp != NULL && envp[ii] != NULL)
			{
			fprintf(fp, "envp[%d] = %s\n", ii, envp[ii]);
			ii++;
			}

		fclose(fp);
		}


return 0;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.