Open Cons

Opens the console's standard input (stdin) or output (stdout) streams, 
using it as if it were file operations.

Syntax
	Open Cons As [#]filenumber
	Open Cons For KeyPgInputfilemodeInput As [#]filenumber
	Open Cons For KeyPgOutputOutput As [#]filenumber

Usage
	result = Open Cons( [For {KeyPgInputfilemodeInput|KeyPgOutputOutput}[,]] As filenumber )
		(or using the QB-like syntax,)
	Open Cons [For {KeyPgInputfilemodeInput|KeyPgOutputOutput}] As filenumber

Parameters
	filenumber
		An available file number to bind to the stdin or stdout stream, which 
		can be found with KeyPgFreefileFreeFile.

Return Value
	In the first usage, Open Cons() returns a 32 bit KeyPgLongLong: a zero (0) on 
	success and a non-zero error code otherwise.

Description
	Open Cons opens the console's stdin or stdout streams for reading or 
	writing. A file number is bound to the stream, which is used in 
	subsequent file operations, such as KeyPgInputPpInput #. An available file number 
	can be retrieved with KeyPgFreefileFreeFile.

	The KeyPgInputfilemodeInput file mode opens the stdin stream for reading file operations, 
	such as KeyPgInputPpLine Input #, while the KeyPgOutputOutput file mode opens the stdout stream 
	for writing file operations, such as KeyPgPrintPpPrint #. The KeyPgOutputOutput file mode is 
	the default if not specified.

	The stdin and stdout streams are the ones used when the calling process' 
	input or output is redirected (piped) by OS commands, or when it is 
	opened with KeyPgOpenPipeOpen Pipe.

	To open both the stdin and stdout streams for file operations, a process 
	must use multiple file numbers.

	The normal screen commands, such as KeyPgColorColor and KeyPgLocateLocate, do not work in 
	this mode, because they do not accept a file number.
	The KeyPgTabTab keyword, regardless of the given column number, is always 
	interpreted as a simple comma (,) (next output will take place at the 
	next 14 column boundary).

	The error code returned by Open Cons can be checked using KeyPgErrErr in the 
	next line. The function version of  Open Cons returns directly the error 
	code as a 32 bit KeyPgLongLong.

	Warning: Presently, Open Cons does not work as described above. Without 
	any file mode specifier, a runtime error 1 (illegal function call) 
	occurs. With the KeyPgInputfilemodeInput file mode specifier, the only input mode is well 
	supported. But with the KeyPgOutputOutput file mode specifier, input and output 
	modes are simultaneously supported.

Runtime errors:
	Open Cons throws one of the following ProPgErrorHandlingruntime errors:

	(1) Illegal function call
		* filenumber was not free at the time. use KeyPgFreefileFreeFile to ensure that 
		  filenumber is free.

Example
	Dim a As String

	Open Cons For Input As #1
	Open Cons For Output As #2

	Print #2,"Please write something and press ENTER"
	Line Input #1,a
	Print #2, "You wrote : ";a

	Close
	Sleep

Differences from QB
	* In QB the syntax was OPEN "CON:" FOR INPUT|OUTPUT AS [#] filenumber

See also
	* KeyPgOpenOpen
	* KeyPgOpenScrnOpen Scrn
	* KeyPgOpenErrOpen Err
	* KeyPgFreefileFreeFile

