Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

soc_wake() - Eine mit select() oder soc-poll() wartende Task wecken

&pagelevel(4)&pagelevel

#include <sys.socket.h>

Kernighan-Ritchie-C:
int soc_wake(pid);
int *pid;

ANSI-C:
int soc_wake(int* pid);


Beschreibung

Mit soc_wake() kann der Benutzer die durch *pid identifizierte Task wecken, wenn diese mit select() oder soc_poll() wartet. Der Aufruf von soc_wake() bewirkt, dass sich select() bzw. soc_poll() mit Returnwert „-1“ und Fehler EINTR beendet.

soc_wake() kann eine andere Task mit derselben Benutzerkennung wecken. Falls soc_wake() aus einer Signal-Routine aufgerufen wird, kann soc_wake() auch die eigene Task wecken.

*pid ist eine Variable, die mit dem Wert der Task Sequence Number (TSN) der wartenden Task versorgt werden muss. Die Task *pid muss zum Zeitpunkt des Aufrufs von soc_wake() bereits existieren und einen Socket geöffnet haben. Falls die Task *pid nicht mit select() wartet, wird das durch soc_wake() gesetzte Signal dem nächsten select()-Aufruf zugeordnet.

Returnwert

0:

bei Erfolg

-1:

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehleranzeige durch errno

ESRCH

Es gibt keine Task mit der Nummer *pid. Entweder ist *pid eine ungültige Tasknummer, oder es ist noch kein SOCKETS(BS2000)-Programm geladen.

EACCES

Keine Zugriffsberechtigung. Die Task *pid hat eine andere Benutzerkennung.