Sto studiando le basi per creare codici shell. Ho una domanda al riguardo.
Nel mio libro di testo, l'autore memorizza il suo codice shell in una variabile di ambiente e inietta l'indirizzo di esso usando strcpy()
in un programma.
Quando crea il suo codice shell, rimuove i byte nulli. Dice che questo è dovuto al fatto che strcpy()
si fermerà a byte nulli.
Tuttavia, penso, poiché strcpy()
ottiene solo l'indirizzo della variabile d'ambiente (memorizzando il suo codice shell), se il suo codice shell ha byte null, non importa. Penso che il suo obiettivo sia quello di cambiare l'indirizzo di ritorno nel percorso della variabile d'ambiente.
Nel libro di testo, un codice shell con byte null non funziona in questa situazione, ma un codice shell privo di null.
Non riesco a capire il motivo per cui dobbiamo rimuovere i byte null in questa situazione.