DosSendSignalException: Difference between revisions
Appearance
Created page with "==Description== Sends a Ctrl+C or a Ctrl+Break signal exception to another process. ==Syntax== <PRE> #define INCL_DOSEXCEPTIONS #include <os2.h> PID pid; /* T..." |
No edit summary |
||
| Line 33: | Line 33: | ||
209 ERROR_INVALID_SIGNAL_NUMBER | 209 ERROR_INVALID_SIGNAL_NUMBER | ||
303 ERROR_INVALID_PROCID | 303 ERROR_INVALID_PROCID | ||
==Remarks== | ==Remarks== | ||
| Line 82: | Line 80: | ||
</PRE> | </PRE> | ||
==Related Functions== | ==Related Functions== | ||
* [[OS2 API:CPI:DosAcknowledgeSignalException| | * [[OS2 API:CPI:DosAcknowledgeSignalException|DosAcknowledgeSignalException]] | ||
* [[OS2 API:CPI:DosEnterMustComplete| | * [[OS2 API:CPI:DosEnterMustComplete|DosEnterMustComplete]] | ||
* [[OS2 API:CPI:DosExitMustComplete| | * [[OS2 API:CPI:DosExitMustComplete|DosExitMustComplete]] | ||
* [[OS2 API:CPI:DosRaiseException| | * [[OS2 API:CPI:DosRaiseException|DosRaiseException]] | ||
* [[OS2 API:CPI:DosSetExceptionHandler| | * [[OS2 API:CPI:DosSetExceptionHandler|DosSetExceptionHandler]] | ||
* [[OS2 API:CPI:DosSetSignalExceptionFocus| | * [[OS2 API:CPI:DosSetSignalExceptionFocus|DosSetSignalExceptionFocus]] | ||
* [[OS2 API:CPI:DosUnsetExceptionHandler| | * [[OS2 API:CPI:DosUnsetExceptionHandler|DosUnsetExceptionHandler]] | ||
* [[OS2 API:CPI:DosUnwindException| | * [[OS2 API:CPI:DosUnwindException|DosUnwindException]] | ||
[[Category:The OS/2 API Project]] | [[Category:The OS/2 API Project]] | ||
Revision as of 16:46, 7 June 2016
Description
Sends a Ctrl+C or a Ctrl+Break signal exception to another process.
Syntax
#define INCL_DOSEXCEPTIONS #include <os2.h> PID pid; /* The identification of the process that is to receive the signal exception. */ ULONG exception; /* The number of the signal exception to send. */ APIRET ulrc; /* Return Code. */ ulrc = DosSendSignalException(pid, exception);
Parameters
- pid (PID) - input
- The identification of the process that is to receive the signal exception.
- exception (ULONG) - input
- The number of the signal exception to send.
Possible values are shown in the following list:
1 XCPT_SIGNAL_INTR 4 XCPT_SIGNAL_BREAK
- ulrc (APIRET) - returns
- Return Code.
DosSendSignalException returns one of the following values:
0 NO_ERROR 1 ERROR_INVALID_FUNCTION 156 ERROR_SIGNAL_REFUSED 205 ERROR_NO_SIGNAL_SENT 209 ERROR_INVALID_SIGNAL_NUMBER 303 ERROR_INVALID_PROCID
Remarks
Do not make Presentation Manager calls from exception handlers.
DosSendSignalException sends either an XCPT_SIGNAL_INTR (Ctrl+C) or an XCPT_SIGNAL_BREAK (Ctrl+Break) signal exception to another process.
For a detailed list of the system exceptions, select System Exceptions.
Example Code
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;
}