Ich habe versucht, Farben zu einigen Zeichenfolgen hinzuzufügen, die in einem Terminal angezeigt werden müssen, das ansi-Escape-Code verwendet. Bis jetzt habe ich noch nicht die ganze Ascii-Escape-Code-Sache begriffen, ich habe nur versucht, durch Kopieren einige Escape-Codes einzufügen. Dann sah das answer, die gebeten, zu überprüfen, ob das Programm überprüfen sollte, ob es in einem Terminal ausgeführt wird, oder sonst fortfahren, ohne Zeichenketten mit Escape-Codes zu verschmutzen?Sicherstellen, dass Programm in einem Terminal ist
Antwort erklärt ein * nichts-basierte Funktion isatty()
zu verwenden, die ich, liegen in unistd.h
fand heraus, was wiederum nicht auf meinem Verständnis zu cunistd
von CPP Standard gefördert wurde, dass es nicht in c Standard zunächst place.I war versuchte wieder SO zu suchen, konnte aber nicht gut verstehen. Jetzt habe ich zwei Fragen dazu:
unistd.h
? Würde das den modernen CPP-Praktiken vorbehalten bleiben?Gibt es auch etwas, das ich lesen/verstehen sollte, bevor ich mich mit ansi/colors in Verbindung setze?
'Verwenden unistd.h' ist ein POSIX-Header, der an den C und C++ Standards vollständig orthogonal ist. Ich glaube nicht, dass einer dieser Standards irgendeine Vorstellung von einem Terminal hat, so dass Sie keine andere Wahl haben, als sich auf System-APIs für systemspezifische Funktionen zu verlassen. – melak47
In Verbindung stehend: http://stackoverflow.com/questions/15331566/c-include-unistd-h-why-not-cunistd. –