X-Recipient: archive-cygwin AT delorie DOT com X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 21B733857C4C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=SystematicSw.ab.ca Authentication-Results: sourceware.org; spf=none smtp.mailfrom=brian DOT inglis AT systematicsw DOT ab DOT ca X-Authority-Analysis: v=2.4 cv=NYRYa0P4 c=1 sm=1 tr=0 ts=5ff3da64 a=kiZT5GMN3KAWqtYcXc+/4Q==:117 a=kiZT5GMN3KAWqtYcXc+/4Q==:17 a=IkcTkHD0fZMA:10 a=wTBax3zDnyY7WjO_qb8A:9 a=QEXdDO2ut3YA:10 Subject: Re: Is it possible to define the root directory in a cross compiled program To: cygwin AT cygwin DOT com References: <48b833bd-547a-92eb-542e-b7da8e0d601b AT interocitors DOT com> From: Brian Inglis Organization: Systematic Software Message-ID: <9d339f8b-83ff-8b9c-b2fe-1c6fa4b2a92d@SystematicSw.ab.ca> Date: Mon, 4 Jan 2021 20:17:55 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <48b833bd-547a-92eb-542e-b7da8e0d601b@interocitors.com> Content-Language: en-CA X-CMAE-Envelope: MS4xfNmfRvVVcpD+Pv1L9c/KK5KGV2Jn3GM/npt/92huBYBdlKDZezUjPZroVYSlcptYVxN+rOShS8IR3bL6rVwjn4aZ7Lwep17EUabF27DkL0lF9S2OKxIc /KmTmYijUgDd9xhX8+9rXm4n/ppbjt0d6nfBJvrLd9+QHiWM8r2igza8D/m3yMjSExTV2lkGTCtrP/K3Bd1TRwaSW1BQnkc3GnU= X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: cygwin AT cygwin DOT com Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: cygwin-bounces AT cygwin DOT com Sender: "Cygwin" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 1053IVZx006598 On 2021-01-04 18:34, Roger Kaufman wrote: > When I cross compile the following program, opening /dev/null fails and instead > the whole install path of /cygwin64/dev/null is visible. > > Is there a way to make fopen respect / as the root directory in a cross compiled > program for windows? > > example output... > > Roger AT interocitor:~ > $ x86_64-w64-mingw32-g++ -o writenull.exe write2null.cc > > Roger AT interocitor:~ > $ writenull.exe > /dev/null did not succeed > > Roger AT interocitor:~ > $ gcc -o writenull write2null.cc > > Roger AT interocitor:~ > $ writenull > /cygwin64/dev/null did not succeed > > C Code that was compiled... > > #include > > int main(int argc, char **argv) > { >   FILE *errfile1 = fopen("/dev/null", "w"); >   if (!errfile1) // must be a valid pointer >     errfile1 = stderr; > >   FILE *errfile2 = fopen("/cygwin64/dev/null", "w"); >   if (!errfile2) // must be a valid pointer >     errfile2 = stderr; > >   fprintf(errfile1, "/dev/null did not succeed\n"); >   fprintf(errfile2, "/cygwin64/dev/null did not succeed\n"); > >   return 0; > } It's a Windows program - it can do whatever you program it to do! On Windows the device is NUL, the root is the drive root C:\, and anything else depends on the Windows subsystem. To do otherwise you have to program it to emulate the Cygwin emulation, or build it as a Cygwin program using the Cygwin toolchain. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised. [Data in binary units and prefixes, physical quantities in SI.] -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple