From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Crawford Subject: Re: DOS program recording it's parameters and environment? Date: Thu, 16 Feb 2012 21:01:53 +0000 Message-ID: <4F3D6EC1.4050100@sat.dundee.ac.uk> References: <4F165699.1080204@hanzlici.cz> <4F229215.1040801@sat.dundee.ac.uk> <4F3D50CF.4000004@hanzlici.cz> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010000000107020108060909" Return-path: In-Reply-To: <4F3D50CF.4000004@hanzlici.cz> Sender: linux-msdos-owner@vger.kernel.org List-ID: To: Frantisek Hanzlik Cc: DOSEMU/FreeDOS , Freedos user list This is a multi-part message in MIME format. --------------010000000107020108060909 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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 --------------010000000107020108060909 Content-Type: text/x-csrc; name="dosenv.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="dosenv.c" #include #include 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