Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Date: Tue, 28 May 2002 19:53:06 -0400 From: Christopher Faylor To: cygwin-developers AT cygwin DOT com Subject: Re: Question about process enumeration and _pinfo structure Message-ID: <20020528235306.GC18281@redhat.com> Reply-To: cygwin-developers AT cygwin DOT com Mail-Followup-To: cygwin-developers AT cygwin DOT com References: <008601c2068e$193b6200$0100a8c0 AT advent02> <20020528223943 DOT GA18086 AT redhat DOT com> <00fc01c2069a$17e09680$0100a8c0 AT advent02> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00fc01c2069a$17e09680$0100a8c0@advent02> User-Agent: Mutt/1.3.23.1i On Tue, May 28, 2002 at 11:50:41PM +0100, Chris January wrote: >> >I want to add a member to the _pinfo structure which contains the command >> >line originally passed to the process. At the moment, when the Cygwin DLL >> >needs a list of the current Cygwin processes it uses winpids to enumerate >> >the processes and the _pinfo structures for each Cygwin process are >copied >> >from a named file mapping. So to store the command line I either need to: >> >i) make the command line an in-line array, e.g. char cmdline[1024]; >> >or >> >ii) make the member a pointer to a string allocated on the cygwin heap. >> >> I'm not wild about either idea. The reason there is no command line in >> the pinfo structure is because I didn't want to waste shared memory space >> on something that was rarely used. I also didn't want to have to recreate >> the command line in dll process startup. >A third alternative is to get the information from the process environment >block. However this is NT specific and doesn't handle fork'ed processes. I >don't understand why you would need to recreate the command line in dll >process startup though. The command line is not always passed to the process. It can get just an argv list. >So is any solution preferred or shall I just drop the idea of >/proc//cmdline ? How about a "get_argv" option to cygwin_internal? I'll see if I can come up with something. cgf