#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.