Stavo cercando di aggiungere colori ad alcune stringhe che devono essere visualizzate in un terminale usando il codice di escape ANSI. Finora non ho afferrato l'intero codice ASCII di escape, semplicemente provando copiando alcuni codici di escape. Quindi ha visto questo answer che ha chiesto di verificare che il programma verifichi che venga eseguito in un terminale o continua senza stringhe di polling con i codici di escape?assicurandosi che il programma sia in un terminale
risposta spiega di utilizzare una * nix funzione isatty()
based che ho scoperto risiede in unistd.h
che a sua volta non è stato promosso a cunistd
dalla norma cpp in base alla mia comprensione che non era nello standard di c in un primo momento place.I ho provato a cercare di nuovo SO ma non sono riuscito a capire bene. Ora ho due domande a riguardo:
- In quale ambiente (parola esatta?) Può un programma - utilizzando i codici di escape ASCII, essere eseguito che richiede un controllo iniziale? dato che sto costruendo solo per cli.
- Quale sarebbe una soluzione adeguata in base agli standard ISO cpp per la gestione di questo problema? utilizzando
unistd.h
? questo si limiterebbe alle moderne pratiche di cpp?
Inoltre c'è qualcosa che dovrei leggere/capire prima di occuparmi di ansi/colori correlati?
'unistd.h' è un'intestazione POSIX, che è interamente ortogonale standard C e C++. Non penso che nessuno di questi standard abbia alcuna nozione di terminale, quindi non hai altra scelta che dipendere dalle API di sistema per le funzionalità specifiche del sistema. – melak47
Correlati: http://stackoverflow.com/questions/15331566/c-include-unistd-h-why-not-cunistd. –