Problem: How do I redirect errors from command-line programs that don't offer an output file switch? Solution: The information in this article applies to: * InterBase 4.x * InterBase 5.x Some InterBase utilities (for example, gfix.exe) don't offer an output file switch to redirect status messages to a text file. Following is an example of how the OS manages this within DOS and UNIX. Legend: 0 - Standard Input (stdin) 1 - Standard Output (stdout) 2 - Standard Error (stderr) Upon opening a new shell, it sets up 0, 1 and 2 file handles.; the OS determines the associated device for each handle. Typically, 0 is the keyboard, 1 is the display and 2 is a file. Now a command-line analysis: C:> gfix -l d:tmpemployee.gdb 2> d:tmperror.txt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ Step: 1 2 3 1) gfix -f -v d:tmpemployee.gdb gfix runs and sets 0, 1 and 2 with the appropriate values: 0 = "gfix -l d:tmpemployee.gdb" 1 = "" 2 = "database file appears corrupt () -bad checksum -checksum error on database page 2" 2) 2> The shell attaches to the associated device (a file in this case that holds the error information). 3) d:tmperror.txt Takes the value from the associated device and redirects it to the text file. This is not an InterBase-only feature. Here is an example using normal OS utilities and the redirection feature: C:> dir /r Invalid switch - "r". C:> dir /r 2> d:tmpdir.txt C:> type d:tmpdir.txt Invalid switch - "r".
Last Modified: 26-OCT-00