[1] Se viene fornito un path, tutte le backslash presenti nella stringa devono essere raddoppiate, onde evitare che il compilatore le interpreti come parte di sequenze di escape. Ad esempio, la stringa


"c:\dos\tree"

non viene gestita correttamente, mentre


"c:\\dos\\tree"

funziona come desiderato.

[2] A dire il vero anche le altre funzioni (spawn...(), exec...()) possono eseguire un'istanza dell'interprete dei comandi. Bisogna però fare attenzione a non cacciarsi nei guai: una chiamata come


    system("command /p");

è lecita e viene tranquillamente eseguita, ma l'effetto dell'opzione /p su COMMAND.COM è di renderne permanente in memoria la nuova istanza: in tal caso il comando EXIT non ha alcun effetto, e non è più possibile riprendere l'esecuzione del parent. Per ragioni analoghe, l'esecuzione di un programma TSR attraverso la system() potrebbe avere conseguenze distruttive.

[3] Vedere quanto detto circa le variabili.

[4] Detto servizio utilizza il valore presente nel registro macchina AL per stabilire il tipo di azione da intraprendere: in particolare, AL = 0 richiede il caricamento e l'esecuzione del programma (funzioni spawn...() se il primo parametro è P_WAIT), mentre AL = 3 richiede il caricamento e l'esecuzione del child nella memoria riservata al parent (overlay), il quale viene a tutti gli effetti sostituito dal nuovo programma (funzioni spawn...() se il primo parametro è P_OVERLAY, e funzioni exec...()).

[5] E' immediato verificarlo con il codice seguente:


    static char *newenv[] = {"USER=Pippo","PATH=C:\\DOS",NULL);
    ...
    spawnlpe(P_WAIT,"command.com","command.com",NULL,newenv);

che esegue una istanza dell'interprete dei comandi; digitando il comando SET al prompt viene visualizzato l'environment corrente. Il comando EXIT consente di chiudere la shell e restituire il controllo al parent.

[6] La variabile environ contiene l'indirizzo dell'array di stringhe (ciascuna avente formato NOME=VAL, dove NOME rappresenta il nome della variabile e VAL il suo valore) rappresentanti l'environemnt del programma. Se si utilizza putenv() per modificare il valore di una variabile o per inserirne una nuova, il valore di environ viene automaticamente aggiornato qualora sia necessario rilocare l'array. Dichiarando main() con tre parametri il terzo rappresenta il puntatore all'array delle stringhe di environment ed inizialmente ha lo stesso valore di environ, ma non viene modificato da putenv().

[7] Process IDentifier. E' un intero positivo che identifica univocamente un processo tra tutti quelli in esecuzione in un dato momento. Si tratta di un concetto sconosciuto in DOS.