Share this page

# goto

Performs an absolute jump to another point in the program. The destination point is identified by a label which is the argument for the goto instruction. A label consists of a valid identifier followed by a colon.

Copy code

    goto<i>label</i>;
    ....
    <i>label</i>:

## Example

The following example, for Windows platforms, opens a file and reads it into a buffer. If file errors occur during the process, goto escapes the enclosing loop to code which prints an error message and exits the function.

To ensure the goto statement is executed, make sure the file c:\xyzpqi.txt does not exist. This causes fopen to return NULL and invoke the goto statement. To see the jump clearly, step through the program in VuGen by pressing the F10 key.

Copy code

    #include <stdio.h>
        int count, total = 0;
        char buffer[1000];
        FILE* file_stream;
        char * filename = "c:\\xyzpqi.txt";
        // Open the file with read access
        if ((file_stream = fopen(filename, "r")) == NULL)
            goto file_error;
        // Read until end of file
        while (!feof(file_stream)) {
       // Read 1000 bytes while maintaining a running count
            count = fread(buffer, sizeof(char), 1000, file_stream);
            lr_output_message ("%3d read", count);
       // Check for file I/O errors
            if (ferror(file_stream))
                goto file_error;
      // add up actual bytes read
            total += count;
        }
      // Display final total
        lr_output_message ("Total number of bytes read = %d", total);
     // Close the file stream
        if (!fclose(file_stream))
            return 0;
            file_error:
            lr_error_message ("Error in file %s", filename);

    Example:
                    Output:
    Action.c(35): Error -17999 : Error in file c:\xyzpqi.txt

Tips to improve your search results... VuGen Function Reference Version 26.1-26.3 Function Reference 26.1-26.3 All View Local Help Center View Online Help Center Version: