Seite 1 von 2

Verfasst: Freitag 9. März 2007, 23:15
von Dill
mac = macOs = linux = posix

Verfasst: Samstag 10. März 2007, 00:57
von Leonidas
Dill hat geschrieben:mac = macOs = linux = posix
Ähm... nein?

Mac ist der Computer, Mac OS das dort verwendete OS, bis es von Mac OS X ersetzt wurde, welches auf BSD basiert welches mehr oder weniger POSIX-kompatibel sein sollte.

Und das alte Mac OS definiert os.name nicht als POSIX, Mac OS X schon eher. Andererseits ist das alte Mac OS eigentlich inzwischen auch vernachlässigbar.

Verfasst: Samstag 10. März 2007, 08:33
von Dill
ich habe hier doch den universellen überladenen = operator benutzt.

was ich eigentlich sagen wollte:

"Mac ist der Computer, Mac OS das dort verwendete OS, bis es von Mac OS X ersetzt wurde, welches auf BSD basiert welches mehr oder weniger POSIX-kompatibel sein sollte." :)

Verfasst: Samstag 10. März 2007, 09:36
von nkoehring
Leonidas hat geschrieben:Mac ist der Computer, Mac OS das dort verwendete OS, bis es von Mac OS X ersetzt wurde, welches auf BSD basiert welches mehr oder weniger POSIX-kompatibel sein sollte.
MacOSX ist absolut POSIX-kompatibel. Der BSD-Kern unter MacOSX hat nur in Sachen Treibern nennenswerte Veraenderungen erlebt. Ansonsten laeuft also auf dem Mac so gut wie alles, was auch auf dem entsprechenden BSD laeuft oder ist zumindest leicht portierbar, wenn es um wirklich systemnahe Sachen geht. Bei solchen Escape-Sequenzen zB waere ich mir nicht so sicher, da die ja nicht Shell- sondern Terminalabhaengig sind. Aber nur weil ein XTerm auf jedem Mac existiert und laeuft, heißt das ja nicht, dass es der Standard dort ist. In dem Sinne ist ein ``system(clear)`` wohl doch um einiges sicherer ;)

Verfasst: Samstag 10. März 2007, 18:34
von Masaru
*hustet* wenn ein "clear screen" so wichtig für eine Anwendung ist, die auf mehrere (eventuell gar allen) Betriebsysstemen laufen soll ... dann sollte man bedenken, dass dies ebenso ein irrealer Wunsch von der Programmiersprache ist, wie dass Python 100%ig auf jede Frage eine Antwort hätte ;).

Irgendwann kommt man immer an einen Punkt, wo man einsehen muss (oder besser gesagt: sollte), dass man mit den gegebenen Möglichkeiten oder Anforderungen nicht weiter kommt und Abstriche machen oder gar andere Richtungen einschlagen muss.

Z.B. wenn ein Clear Screen ein "muss" ist und es auf Plattformen laufen soll, für die man nicht immer einen entsprechenden CommandoShell-Befehl vorrausetzen kann ... dann sollte man evntuell überlegen, ob die Lösung nicht eventuell in einer GUI-Form besser geeignet wäre, als die zuerst eingeschlagene CommandoShellScript-Version.

Verfasst: Sonntag 11. März 2007, 17:24
von Y0Gi
Wenn das Programm den ganzen Bereich des Terminals oder ein Fenster oder den Bildschirm füllen soll, dann sollte man sich (n)curses, wx/Tk/..., pygame oder dergleichen bedienen. Wenn das Programm nur ein paar Zeilen auf STDOUT schreibt, dann braucht man kein Clearscreen. Davon ab verhindert man damit, dass man das Kommando samt Parametern sehen kann, mit dem das Programm aufgerufen wurde.

Verfasst: Montag 12. März 2007, 07:59
von oliver1974
sprudel hat geschrieben:
Masaru hat geschrieben::D
Und ich dachte damit geht alles... so kann man sich täuschen :lol:
Na ja, es ist wohl nicht Aufgabe der Sprache selber, Funktionalität für das Handling der Konsole mitzubringen, sowas gehört meines Erachtens nach immer in eine Library bzw. in externe Befehle... 8)

Sieh's mal so, die ganzen Plattformabhängigen Geschichten hast du ja auch schon in extra Modulen wie z.B. "os", man könnte jetzt nur noch darüber sinnieren ob man "ncurses" oder etwas ähnliches standardmäßig mitliefern sollte....

Bei Java sieht's z.B. auch nicht besser aus, von Haus aus gibts da auch nichts um "mal so eben" mit einem eingebauten Befehl den Konsoleninhalt löschen zu können... Aber das ist konsolenmäßig eh ziemlich schwach auf der Brust, man merkt irgendwie schon, dass es von Anfang an gleich eher für einen Dialog mit dem Benutzer via GUI konzipiert worden ist...