/*
     * test if we can open the target file
     */
-   if ((tmpfile = open(filename, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | O_CREAT | PG_BINARY, S_IRUSR | S_IWUSR)) == -1)
        die("could not open output file");
    needs_unlink = 1;
    if (write(tmpfile, full_buf, XLOG_SEG_SIZE) != XLOG_SEG_SIZE)
    fflush(stdout);
 
 #ifdef OPEN_DATASYNC_FLAG
-   if ((tmpfile = open(filename, O_RDWR | O_DSYNC | PG_O_DIRECT, 0)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | O_DSYNC | PG_O_DIRECT | PG_BINARY, 0)) == -1)
    {
        printf(NA_FORMAT, "n/a*\n");
        fs_warning = true;
    fflush(stdout);
 
 #ifdef HAVE_FDATASYNC
-   if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
        die("could not open output file");
    START_TIMER;
    for (ops = 0; alarm_triggered == false; ops++)
    printf(LABEL_FORMAT, "fsync");
    fflush(stdout);
 
-   if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
        die("could not open output file");
    START_TIMER;
    for (ops = 0; alarm_triggered == false; ops++)
    fflush(stdout);
 
 #ifdef HAVE_FSYNC_WRITETHROUGH
-   if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
        die("could not open output file");
    START_TIMER;
    for (ops = 0; alarm_triggered == false; ops++)
    fflush(stdout);
 
 #ifdef OPEN_SYNC_FLAG
-   if ((tmpfile = open(filename, O_RDWR | OPEN_SYNC_FLAG | PG_O_DIRECT, 0)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | OPEN_SYNC_FLAG | PG_O_DIRECT | PG_BINARY, 0)) == -1)
    {
        printf(NA_FORMAT, "n/a*\n");
        fs_warning = true;
    fflush(stdout);
 
 #ifdef OPEN_SYNC_FLAG
-   if ((tmpfile = open(filename, O_RDWR | OPEN_SYNC_FLAG | PG_O_DIRECT, 0)) == -1)
+   if ((tmpfile = open(filename, O_RDWR | OPEN_SYNC_FLAG | PG_O_DIRECT | PG_BINARY, 0)) == -1)
        printf(NA_FORMAT, "n/a*\n");
    else
    {
    START_TIMER;
    for (ops = 0; alarm_triggered == false; ops++)
    {
-       if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+       if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
            die("could not open output file");
        if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ)
            die("write failed");
         * open and close the file again to be consistent with the following
         * test
         */
-       if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+       if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
            die("could not open output file");
        close(tmpfile);
    }
    START_TIMER;
    for (ops = 0; alarm_triggered == false; ops++)
    {
-       if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+       if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
            die("could not open output file");
        if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ)
            die("write failed");
        close(tmpfile);
        /* reopen file */
-       if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+       if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
            die("could not open output file");
        if (fsync(tmpfile) != 0)
            die("fsync failed");
    START_TIMER;
    for (ops = 0; alarm_triggered == false; ops++)
    {
-       if ((tmpfile = open(filename, O_RDWR, 0)) == -1)
+       if ((tmpfile = open(filename, O_RDWR | PG_BINARY, 0)) == -1)
            die("could not open output file");
        if (write(tmpfile, buf, XLOG_BLCKSZ) != XLOG_BLCKSZ)
            die("write failed");