TEST18.C
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:1k
源码类别:

操作系统开发

开发平台:

DOS

  1. #include <stdio.h>
  2. #include <rtos.h>
  3. #include <conio.h>
  4. /*
  5.  * Demonstrate buffer overrun detection
  6.  */
  7. #if defined(__TURBOC__) || defined(__BORLANDC__)
  8. #define STACKLEN 2048
  9. #else
  10. #define STACKLEN 4096
  11. #endif
  12. /*********************************************************/
  13. void test(DWORD arg)
  14. {
  15.     char *p;
  16. #define TESTSIZE 512
  17.     p = kcalloc( TESTSIZE, 1 );
  18.     if ( p != NULL ) {
  19.         memset( p, 0, TESTSIZE + 1 );
  20.         kfree( p );
  21.     }
  22. }
  23. /*********************************************************/
  24. int main(int argc, char **argv)
  25. {
  26.     int i;
  27.     // changing the next line would all that is needed to make this
  28.     // a pre-emptive multithreaded application
  29.     kpreemptive = 0;
  30.     kdebug = 1;
  31.     rt_init(100);
  32.     kwindow( 1, 6, 80, 16 );
  33.     cputs("Will demonstrate capturing a buffer overrunrn");
  34.     cputs("starting...rn");
  35.     rt_newthread( test,  1,4096, 0, "worker 1" );
  36.     for ( i = 0 ; i < 1000 ; ++i ) {
  37.         rt_sleep( 10 );
  38.         cprintf("in main %inr", i);
  39.     }
  40. }