[1] Solo a partire dalla versione 3.0 del DOS. Se il programma è invocato sotto versioni precedenti argv[0] contiene la stringa "C".
[2] L'environment non c'entra nulla con la command line, ma già che ci siamo...
[3] Nelle librerie del C Microsoft troviamo setenvp() e setargv(): la sostanza non cambia.
[4] Il compilatore, diligentemente, inserisce un riferimento esterno (che il linker risolve con una ricerca in libreria) solo per quelle funzioni il cui codice non si trova nel sorgente.
[5] Priva, però, del nome del programma e degli eventuali simboli di piping ('|') e redirezione ('<', '>').
[6] Un puntatore al PSP è, per definizione, far ed impone l'uso di _fstrncpy(), mentre il buffer cmdline è near: ciò spiega il cast (char far *)cmdline. La _fstrncpy() è la versione per puntatori a32 bit della strncpy().
[7] Per spazio si intende uno o più blank o tabulazioni.
[8] La principale differenza tra dette regole e la consuetudine Unix è che quest'ultima, generalmente, non ammette l'uso del carattere ':' quale separatore tra una argLetter e relativo parametro.
[9] Non nel caso di opzioni errate!
[10] Non è un carattere, ma un numero a 8 bit. Ciò significa che per esprimere il numero 4, il campo opt non contiene '4', ma il carattere ASCII 4.
[11] In realtà, storeopt() deriva dalla funzione getopt(), che nei sistemi Unix rappresenta l'algoritmo standard (fornita come sorgente con molti compilatori proprio per consentire agli sviluppatori di scrivere applicazioni con interfaccia coerente) per la scansione della command line.
[12] Dal momento che gopError()
è una funzione di servizio per storeopt(),
entrambi i moduli .OBJ verrebbero comunque inclusi dal
linker nell'eseguibile.