ID Number: Q47016
3.1x | 3.1x
MS-DOS | OS/2
Question:
I want to use a response file entitled LIB_OPS with the library
manager just for specifying my library operations. When I invoke LIB
with the command
LIB mylib.lib @lib_ops, mylib.lst;<cr>
it generates the following error:
LIB : fatal error U1183 : 'cannot open response file'
However, when I invoke LIB using the command prompts and supply my
response file for the Operations prompt as follows, everything works
correctly:
.
.
Operations: @lib_ops<cr>
.
.
What differentiates the two cases?
Response:
Using a response file on the command line of the library manager
requires that the response filename be delimited correctly. This is
mandated by the command-line parser, which considers trailing argument
delimiters such as a comma or semicolon to be part of the response
filename. Consequently, the parsing of the unknown filename prohibits
DOS from locating and opening the correct response file. When a
response file is detected on the LIB command line (via the "@"
character), the command interpreter parses following characters as the
filename argument until a DOS delimiter, either a space character or a
carriage return, is encountered. Hence, LIB commands such as
LIB @response;<cr>
LIB mylib.lib @response, mylib.lst;<cr>
generate the U1183 "cannot open response file" because the file
"response" is actually parsed as "response;" and "response,",
respectively, neither of which exist in the current working directory
or those directories searched for by the DOS APPEND command. However,
correctly delimiting the end of the response file argument with a
space or carriage return allows the following LIB commands to work
correctly:
LIB @response ;<cr>
LIB @response<cr>
LIB mylib.lib @response ,mylib.lst;<cr>
More Information:
When operating the library manager with a response file containing
information for one or more of the LIB arguments, it must be invoked
in one of the following two ways:
1. With the response file supplied on the LIB command line and the
file's final character delimited correctly (by a space or carriage
return).
2. With no command line arguments and the response file used as a
reply to the appropriate LIB command prompt.
The first method is discussed and illustrated in the information
above. The second method of using the library manager prompts is
equally effective. However, when supplying a response file to a LIB
command prompt, the filename must be delimited correctly as in the
aforementioned, or the U1183 error occurs. The following example
demonstrates the generation of this error due to incorrect delimiting
of the response file:
LIB<cr>
Microsoft Ò Library Manager Version 3.14
Copyright Ó Microsoft Corp 1983-1988. All rights reserved
Library name: mylib.lib<cr>
Operations: @response;<cr>
LIB : Fatal Error U1183: Cannot open response file
Correcting the response file argument to the Operations prompt as
follows eliminates the problem:
Operations: @response<cr>
or
Operations: @response thisisextrajunkbutwillworkcuzofthe<space>delimiter