www.delorie.com/archives/browse.cgi | search |
Message-Id: | <200912252158.nBPLwhTD015156@delorie.com> |
X-Recipient: | archive-cygwin AT delorie DOT com |
X-SWARE-Spam-Status: | No, hits=4.5 required=5.0 tests=AWL,BAYES_40,MISSING_MID,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC,TVD_RCVD_IP |
X-Spam-Check-By: | sourceware.org |
From: | "Jan Alphenaar" <jan DOT alphenaar AT dotcolour DOT com> |
To: | <cygwin AT cygwin DOT com> |
Subject: | C / C# combination question |
Date: | Fri, 25 Dec 2009 22:58:34 +0100 |
MIME-Version: | 1.0 |
X-IsSubscribed: | yes |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Hi everybody, I have just installed the Cygwin environment with Cygwin DLL release version 1.7.1-1. My goal is to call a Cygwin compiled C program from a C# program written in Visual studio 2008 and read an environment variable from the Windows environment in the C program. Unfortunately my C program is not able to read the environment variable set in the C# program. For the purpose of elimination here are some facts: 1) If I replace the C program for a windows .bat file and call this .bat file from the C# program it returns the environment variable. 2) Calling the C program directly in a dos box, results in the fact that it can read an environment variable. 3) In previous versions of cygwin, this worked correctly, although I am not sure with which version of the Cygwin DLL release. Has anybody seen this rather strange behaviour before ? Any help is greatly appreciated. Warm regards, Jan This is my C program: ==== BEGIN C CODE ==== #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <stdbool.h> main() { printf("%s\n", getenv("CYGWIN")); } ==== END C CODE ==== And this is my C# code: ==== BEGIN C# CODE ==== private void button1_Click(object sender, EventArgs e) { Process p = new Process(); p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.FileName = @"D:\Test\bin\jan.exe"; p.StartInfo.EnvironmentVariables["CYGWIN"] = "nodosfilewarning"; p.OutputDataReceived += new DataReceivedEventHandler(StdOutputHandler); p.ErrorDataReceived += new DataReceivedEventHandler(StdOutputHandler); p.Start(); p.StandardInput.AutoFlush = true; p.BeginOutputReadLine(); p.BeginErrorReadLine(); p.WaitForExit(); p.Close(); } private void StdOutputHandler(object sendingProcess, DataReceivedEventArgs Entry) { MessageBox.Show(Entry.Data); } ==== END C# CODE ==== -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |