Syntax
#include <stdlib.h>   /* also in <process.h> */
int _beginthread(void (*start_address) (void *),
                     (void *)stack,
                     unsigned stack_size,
                     void *arglist);
Description
start_address
An alternative to this function is the OS/2 DosCreateThread function. If you use DosCreateThread, you must also use a #pragma handler statement for the thread function to ensure proper C exception handling. You should also call the _fpreset function at the start of the thread to preset the 387 control status word correctly. Using DosCreateThread requires that you use _endthread to terminate the thread.
If successful, _beginthread returns the thread ID number of the new thread. It returns -1 to indicate an error.
This example uses _beginthread to start a new thread bonjour, which prints Bonjour! five times and then implicitly ends itself. The program then prints a statement indicating the thread identifier number for bonjour.
#define  INCL_DOS#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
static int wait = 1;
void bonjour(void *arg)
{
   int i = 0;
   while (wait)              /* wait until the thread id has been printed     */
      DosSleep(0l);
   while (i++ < 5)
      printf("Bonjour!\n");
}
int main(void)
{
   int tid;
   tid = _beginthread(bonjour, NULL, 8192, NULL);
   if (-1 == tid) {
      printf("Unable to start thread.\n");
      return EXIT_FAILURE;
   }
   else {
      printf("Thread started with thread identifier number %d.\n", tid);
      wait = 0;
   }
   DosWaitThread((PTID)&tid, DCWW_WAIT);  /* wait for thread bonjour to       */
                                          /* end before ending main thread    */
   return 0;
   /****************************************************************************
      The output should be similar to :
       Thread started with thread identifier number 2.
       Bonjour!
       Bonjour!
       Bonjour!
       Bonjour!
       Bonjour!
   ****************************************************************************/
}
Related Information