Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Borland C++ 2.x ( with Turbo C ) - <b>ctrlbrk() set control-break handler</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 ctrlbrk()               Set Control-Break Handler

 #include   <dos.h>

 void       ctrlbrk(fptr);
 int        (*fptr)(void);               Handler function

    ctrlbrk() modifies interrupt vector 0x23 to call a new control-break
    handler function pointed to by 'fptr'.  Rather than call the new
    handler function directly, ctrlbrk() establishes a DOS interrupt
    handler that calls the function.

    The new handler function can carry out whatever valid operations and
    system calls it requires, and can use longjmp() to return to any
    desired point in the program.

       Returns:     Nothing.  0 is returned by the handler function to
                    abort the current program; any different value causes
                    the program to resume execution.

   Portability:     MS-DOS only.

   -------------------------------- Example ---------------------------------

    The following statements install a control break handler which will
    only allow the program to be interrupted at a given time.

           #include <stdio.h>   /* for printf */
           #include <dos.h>     /* for ctrlbrk */

           int ok2break = 1;

           int brk_handler(void)
           {
               if (ok2break) {
                   printf("Aborting program\n");
                   return(0);
               }
               else {
                   printf("Unable to abort at this time\n");
                   return(1);
               }
           }

           main()
           {
               ctrlbrk(brk_handler);
               ok2break = 0;
               /* do some file operations which can't be interrupted */
               ok2break = 1;
               /* do some operations which can be interrupted */
           }


See Also: longjmp() setjmp()

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson