This example sends a signal exception to another process.
#define INCL_DOSPROCESS /* Process and thread values */
#define INCL_DOSEXCEPTIONS /* DOS exception values */
#define INCL_DOSERRORS /* DOS error values */
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(USHORT argc, CHAR *argv[] ) {
APIRET rc = NO_ERROR; /* Return code */
PID pidToIntr = 0; /* Interrupt this process */
if ( argc < 2 ) {
printf("sendsig error: Need to pass PID of thread to interrupt.\n");
return 1;
} else {
pidToIntr = (PID) atoi ( argv[1] );
} /* endif */
rc = DosSendSignalException ( pidToIntr, /* Process to interrupt */
XCPT_SIGNAL_INTR ); /* Send this signal */
if (rc != NO_ERROR) {
printf("DosSendSignalException error: return code = %u\n", rc);
return 1;
} else {
printf ("DosSendSignalException complete.\n");
} /* endif */
return NO_ERROR;
}