Annotation of coherent/a/usr/man/ALL/goto, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: goto                        C Keyword                        goto
                      4: 
                      5: 
                      6: 
                      7: 
                      8: Unconditionally jump within a function
                      9: 
                     10: 
                     11: A goto command  jumps to the area of the  program introduced by a
                     12: label.  A program can goto only within a function; to jump across
                     13: function  boundaries,  you  must  use  the functions  setjmp  and
                     14: longjmp.
                     15: 
                     16: In the context of C programming,  the most common use for goto is
                     17: to exit from a control block or go to the top of a control block.
                     18: It  is  used  most often  to  write  ``ripcord'' routines,  i.e.,
                     19: routines that are executed  when an major error occurs too deeply
                     20: within  a function  for the  program  to disentangle  itself cor-
                     21: rectly.  Note that in most instances, goto is a bad solution to a
                     22: problem that can be better solved by structured programming.
                     23: 
                     24: ***** Example *****
                     25: 
                     26: The following example demonstrates how to use goto.
                     27: 
                     28: 
                     29: #include <stdio.h>
                     30: 
                     31: 
                     32: 
                     33: main()
                     34: {
                     35:         char line[80];
                     36: 
                     37: 
                     38: 
                     39: getline:
                     40:         printf("Enter line: ");
                     41:         fflush(stdout);
                     42:         gets(line);
                     43: 
                     44: 
                     45: 
                     46: /* a series of tests often is best done with goto's */
                     47:         if (*line == 'x') {
                     48:                 printf("Bad line\n");
                     49:                 goto getline;
                     50:         } else if (*line == 'y') {
                     51:                 printf("Try again\n");
                     52:                 goto getline;
                     53:         } else if (*line == 'q')
                     54:                 goto goodbye;
                     55:         else
                     56:                 goto getline;
                     57: 
                     58: 
                     59: 
                     60: 
                     61: 
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 
                     67: 
                     68: 
                     69: goto                        C Keyword                        goto
                     70: 
                     71: 
                     72: 
                     73: goodbye:
                     74:         printf("Goodbye.\n");
                     75:         exit(0);
                     76: }
                     77: 
                     78: 
                     79: ***** See Also *****
                     80: 
                     81: C keywords
                     82: 
                     83: ***** Notes *****
                     84: 
                     85: _T_h_e _C  _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e describes  goto as ``infinitely-abus-
                     86: able'': caveat utilitor.
                     87: 
                     88: 
                     89: 
                     90: 
                     91: 
                     92: 
                     93: 
                     94: 
                     95: 
                     96: 
                     97: 
                     98: 
                     99: 
                    100: 
                    101: 
                    102: 
                    103: 
                    104: 
                    105: 
                    106: 
                    107: 
                    108: 
                    109: 
                    110: 
                    111: 
                    112: 
                    113: 
                    114: 
                    115: 
                    116: 
                    117: 
                    118: 
                    119: 
                    120: 
                    121: 
                    122: 
                    123: 
                    124: 
                    125: 
                    126: 
                    127: 
                    128: 
                    129: 
                    130: COHERENT Lexicon                                           Page 2
                    131: 
                    132: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.