SYSTEM()

Top  Previous  Next

 

The SYSTEM() function returns information regarding the status of various aspects of the system. On the PDA version of QM, key values that are inappropriate return a zero value.

 

 

Format

 

SYSTEM(key)

 

where

 

keyidentifies the information to be returned.

 

 

The SYSTEM() function is provided for compatibility with other data management products. Many of the key values correspond to those found in other multivalue database products though some values are implemented inconsistently across products. Values 1000 and above are usually specific to QM.

 

The following key values are implemented. All other key values return a zero value.

 

Key        Function

1Returns 1 if a PRINTER ON statement is in effect
2Current page width of the default print unit
3Current page length of the default print unit
4Lines remaining on current page of the default print unit
5Current page number of the default print unit
6Current line number of the default print unit
7Terminal type (same as @TERM.TYPE)
9Cumulative processor time used (mS) by this QM session
10Input waiting in the DATA queue?  (1 if so, 0 if not)
11Select list 0 active? (1 if so, 0 if not)
12Time in seconds since midnight (same as TIME())
18User number (same as @USERNO)
19Returns a unique value formed from the internal form date and time in the user's time zone as two five digit numbers. If the function is used more than once system wide in the same second, an alphabetic suffix is added to create a unique value. This function is unreliable in applications where users span multiple time zones.
23Break key enabled? (1 if so, 0 if not)
24Input echo enabled? (1 if so, 0 if not)
25Is this a phantom process?
26Returns the current input prompt character
27Returns the operating system uid for the user's process. (Not Windows or PDA)
28Returns the operating system effective uid for the user's process. (Not Windows or PDA)
29Returns the operating system gid for the user's process. (Not Windows or PDA)
30Returns the operating system effective gid for the user's process. (Not Windows or PDA)
31Licence number
32Returns the system (QMSYS) directory pathname
38Returns temporary directory pathname
42Returns telnet connection IP address, null for a console user
91Returns 1 on Windows, 0 on other platforms
1000Returns 1 if EXECUTE CAPTURING is in effect, 0 otherwise
1001Returns 1 if case inversion is enabled, 0 otherwise
1002Returns the program call history. This is a dynamic array in which each program is represented by a field, the current program being in field 1. The first value in each field contains the program name. Subsequent values are divided into two subvalues containing the program address and line number (where available) for each internal subroutine call (GOSUB) in the program. The first value in each field has an additional third subvalue containing the compile time of the program as an epoch value.
1003Returns a dynamic array containing a list of open files. Each field has two values; the first holds the internal file number, the second holds the file's pathname.
1004Returns the peak number of files that have been open at one time since QM was started.
1005Returns the combined date and time value as DATE() * 86400 + TIME() based on the user's time zone.
1006Returns 1 if running on a Windows NT style system (NT and later).
1007Returns the current transaction number, zero if not in a transaction.
1008Returns the current transaction level, zero if not in a transaction.
1009Returns the system byte ordering, 1 for high byte first, 0 for low byte first.
1010Returns the platform name; Windows, Linux, FreeBSD, AIX, Mac, PDA.
1011Returns the pathname of the QM configuration file
1012Returns the QM version number.
1013Returns user limit, excluding users reserved for phantom processes.
1014Returns user limit, including users reserved for phantom processes.
1015Returns the name of the host computer system.
1016Returns the remaining number of licensed non-phantom users.
1017Returns the tcp/ip port number for a socket connection.
1018Returns the device licensing connection limit.
1019Returns the offset in seconds of the user's local time zone from UTC. This will be negative for zones to the west of longitude zero.
1020Returns the time of day in milliseconds since midnight UTC.
1024Returns the current working directory pathname when QM was entered.
1025Returns a dynamic array where field 1 is a multivalued list of environment variable names and field 2 is a corresponding list of their values.
1026Returns xxx when QM is entered using "qm xxx".
1027Returns the name of the serial port when logged in on a serial connection.
1028Returns the system id of the active QM licence, zero if the licence is not system specific.
1029Returns the current internal subroutine depth.
1030Returns login time as date * 86400 + time in the user's local time zone using Pick date numbering.
1031Returns operating system process id.
1032Returns and clears the break pending flag, set if the break key is pressed with breaks disabled.
1033Returns true if a COMO file is active.
1034Returns true if COMO output is active but suspended.
1035Returns the time as seconds since 00:00:00 on January 1 1970, Universal Coordinated Time (UTC) independent of the user's time zone. Same as the EPOCH() function.
1036Returns the period in tenths of a second for which login was delayed waiting for a spare user. See the LGNWAIT configuration parameter.
1037Returns a dynamic array with one field for each open QM file. In each field, value 1 holds the internal file number, value 2 holds the file pathname and value 3 is a subvalue mark delimited list of QM user numbers for which the file is open.
1038Returns login time as an epoch value.
1040Returns true if operating system filenames are case insensitive.

 

QM allows users to add definitions for their own SYSTEM() function key values by writing a QMBasic subroutine that performs whatever processing is required. This subroutine takes two arguments. The first is used to return the result and the second is the key value passed in. This subroutine must be catalogued as $SYSTEM.