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@interocitor:~
$ x86_64-w64-mingw32-g++ -o writenull.exe write2null.cc

Roger@interocitor:~
$ writenull.exe
/dev/null did not succeed


Roger@interocitor:~
$ gcc -o writenull write2null.cc

Roger@interocitor:~
$ writenull
/cygwin64/dev/null did not succeed


C Code that was compiled...

#include <cstdio>

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

Reply via email to