SYS(16) - Executing Program File Name

Returns the file name of the program being executed.

SYS(16 [, nProgramLevel])

Return Values

Character

Parameters

  • nProgramLevel
    Indicates from how many levels back the program name is fetched. This value can range from 1 to the depth at which programs are nested.

    If nProgramLevel is 0 or 1, SYS(16) returns the name of the main program (the program first executed). The name of the currently executing program is returned if nProgramLevel is omitted. The empty string is returned if nProgramLevel is greater than the program nesting depth.

Remarks

This option is useful for recovering from errors. SYS(16) is similar to PROGRAM( ). However, SYS(16) returns a path with the program name; whereas PROGRAM( ) returns just the program name.

If a procedure or function is being executed, SYS(16) returns the name of the file containing the procedure or function after the procedure or function name.

When the executing program is part of an application (.app), SYS(16) returns only the name of the program — the path isn't returned with the program name.

Example

The program nesting is returned in the following short program example:

STORE 1 TO gnX
DO WHILE LEN(SYS(16,gnX)) != 0
   ? SYS(16,gnX)
   STORE gnX+1 TO gnX
ENDDO

See Also

LINENO( ) | ON ERROR | PROGRAM( ) | SYS( ) Functions Overview