Example: static

The following example shows a static variable, logon_done, used as a boolean flag to execute the logon procedure once only. logon_done retains its value between each call to Action(). Once it is set to 1, it never again attempts to log on to the server.

    #define MAX_RETRIES 5
    static int logon_done = 0;
    int retry; // Attempt to logon MAX_TRIES 
 
    if (!logon_done) {
 // logon to server here and break out of loop if successful 
    for (retry=0; retry<MAX_RETRIES; retry++)
        lr_output_message ("Retry number %d", retry);
        logon_done = 1;
    }
Output:
Action.c(12): Retry number 0
Action.c(12): Retry number 1
Action.c(12): Retry number 2
Action.c(12): Retry number 3
Action.c(12): Retry number 4