BUG: Can't Redirect File as Input When Running a Program in PWB

Last reviewed: July 17, 1997
Article ID: Q69220
1.10 MS-DOS kbtool kbcode kbbuglist

The information in this article applies to:

  • Microsoft Programmer's Workbench for MS-DOS, versions 1.0 and 1.1
  • Microsoft Programmer's Workbench for OS/2, versions 1.0 and 1.1

SYMPTOMS

The Microsoft Programmer's WorkBench (PWB) contains three ways to run a program:

  1. You can choose Execute from the Run menu (and choose Command Line from the Run menu to specify the command-line arguments).

  2. You can choose Run DOS Command from the Run menu.

  3. You can use the key combination "Arg textarg SHIFT+F9".

However, a problem occurs if a file is redirected as input into a program that is executed using any of the methods above. The length of the input file, from which STDIN will receive data, will be erased and will receive a length of zero bytes. Thus, you cannot run a program (command) from the Programmer's WorkBench that expects STDIN to be redirected from a file. For example, if the command "PROG <INPUT.TXT" is entered under Run DOS Command from the Run menu, the file INPUT.TXT will be erased and have a length of zero. This problem occurs only in DOS. The OS/2 version of the Programmer's WorkBench works correctly.

RESOLUTION

One way to work around the problem is to create a batch file that performs the command. Rather than running the program directly, the program can be ran in the batch file with STDIN redirected from a file.

STATUS

Microsoft has confirmed this to be a problem in the Programmer's WorkBench version 1.1. We are researching this problem and will post new information here as it becomes available.

MORE INFORMATION

Below is sample program that receives data redirected from a file, and prints it to the screen. To demonstrate the problem, you can use the sample program and do one of the following:

Choose Execute from the Run Menu

  1. Open the source file or program list of the program you want to run.

  2. Enter the command line option "<input.txt" under Command Line in the Run menu. INPUT.TXT is the file that contains the input for the program.

  3. Choose Execute from the Run menu.

  4. View the size of the file, INPUT.TXT.

Choose Run DOS Command from the Run Menu

  1. Choose Run DOS Command from the Run menu.

  2. Enter "prog <input.txt" where "prog" is the name of the executable and INPUT.TXT is the name of the input file.

  3. View the size of the file, INPUT.TXT.

Type "Arg textarg SHIFT+F9"

  1. Press ALT+A.

  2. Type in the command "prog <input.txt".

  3. Press SHIFT+F9.

  4. View the size of the file, INPUT.TXT.

Sample Code

#include <stdio.h>
void main(void)
{
   int c;
   for (c=getchar();!feof(stdin);c=getchar())
      printf("%c",(char)c);
}


Additional reference words: 1.00 1.10 buglist1.10
KBCategory: kbtool kbcode kbbuglist
KBSubcategory: PWBIss
Keywords : kb16bitonly


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 17, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.