Spawn (informatica)

Spawn is in de informatica een functie om een nieuwe taak of nieuw proces te starten. De oorspronkelijke taak (parent) kan hierbij ofwel wachten tot deze nieuwe taak (child) is afgelopen, ofwel a-synchroon de eigen uitvoering (executie) vervolgen.

Er is een familie van spawnfuncties in DOS, later geërfd door Microsoft Windows.

Er is ook een andere familie van spawnfuncties in een optionele extensie van de POSIX-standaarden.[1]

DOS/Windows-spawnfuncties

De DOS/Windows-spawnfuncties zijn geïnspireerd op de Unix-functies fork en exec. Omdat deze besturingssystemen echter geen fork ondersteunden,[2] werd spawn geïntroduceerd. De spawnfunctie is wel minder krachtig dan de fork-exec-combinatie.

int spawnl(int mode, char *path, char *arg0, ...);
int spawnle(int mode, char *path, char *arg0, ..., char ** envp);
int spawnlp(int mode, char *path, char *arg0, ...);
int spawnlpe(int mode, char *path, char *arg0, ..., char ** envp);
int spawnv(int mode, char *path, char **argv);
int spawnve(int mode, char *path, char **argv, char ** envp);
int spawnvp(int mode, char *path, char **argv);
int spawnvpe(int mode, char *path, char **argv, char ** envp);

Elke functie begint met spawn gevolgd door een of meer letters:

NaamOpmerkingen
lCommand-line-argumenten worden individueel meegegeven aan de functie.
vCommand-line-argumenten worden als pointer array meegegeven.
pGebruik het PATH-argument om het uit te voeren bestand te vinden.
eEnvironment-argumenten worden aan het child process doorgegeven.

POSIX-spawnfuncties

De POSIX-spawnfuncties werden geïntroduceerd om processen te kunnen ondersteunen bij POSIX-implementaties in embedded omgevingen die geen swapping of vertaling van dynamische adressen ondersteunden.[3]

Zie ook

Gerelateerde functies zijn:

  • fork: het afsplitsen van een nieuwe taak, als kopie van de oorspronkelijke taak
  • exec: het starten van een nieuwe taak in een eigen nieuwe context

In al deze gevallen is er sprake van parallelle uitvoering van functies.

Noten

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.