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;
}