Starten Sie in ein neues Terminal-Fenster auf dem Mac
Unter Windows kann ich tun CreateProcess(..., CREATE_NEW_CONSOLE, ...)
- und mein Kind-Prozess (die Konsole app, nicht GUI) werden in einem neuen Fenster gestartet. Was ist der einfachste Weg, um zu emulieren, das auf Mac OS?
Du musst angemeldet sein, um einen Kommentar abzugeben.
open -a Terminal.app $(which program)
bekommt ein neues terminal ausführen des angegebenen Programms (wenn Sie bash benutzen).Können Sie
execve()
(möglich nach einfork()
) zu erreichen, die gleiche Sache in kompilierter code ohne Kenntnis der Apple-APIs (ich glaube, es gibt einen richtigen Weg, dies zu tun...).Lesen
man open
.Edit: brauchst du nicht zu geben Sie den Pfad zum Terminal.app (im finder das herausfinden können).
Wenn Sie X ausführen, ist es sogar noch einfacher: einfach erzeugen ein neues xterm mit
xterm -e program &
.Lesen
man xterm
(das wird länger dauern...).Werde ich die zweite Chris über den richtigen Gebrauch (oder deren fehlen) der CLI für gewöhnliche mac-Programme. In meinem buisness ist dies aber erwartet der typische Benutzer wird {verwirrt|wütend|unglücklich}.
Das Terminal (Terminal.app, welche Sie sich beziehen, als "die Konsole") ist nur ein anderes user-level-Anwendung, die auf Mac OS X, nicht eine Funktion des Betriebssystems. Es gibt keinen direkten Weg in die verschiedenen APIs zur Verfügung, die auf Mac OS X starten Sie einfach eine ausführbare Datei in einem neuen Terminal-Fenster.
Aber ich glaube, Sie können öffnen Sie eine ausführbare Datei mit dem Terminal, als ob es ein Dokument — egal, ob im code oder als ein Benutzer — und es wird laufen in einer neuen Sitzung. Dies ist jedoch nicht einem normalen Mac OS X user experience und sollte nicht in der Regel in der Mac-software, die Sie gehen zu liefern auf die Nutzer haben.
Mac-OS-X-Anwendungen sind Anwendungen. Es ist gut, Werkzeuge, fortgeschrittene Benutzer interagieren können per Terminal, aber das Terminal ist in keiner Weise, Form oder form ein Ersatz für eine Reale Anwendung, wenn in der Bereitstellung von software für Endanwender.
Werde ich hinzufügen, dass wenn Sie mit Kakao, die Sie verwenden können, die NSTask - Klasse zu starten und interagieren mit anderen Verfahren sehr einfach.
Marc Liyanage tut dies, ordentlich, mit "Begriff", osascript tell application "Terminal":
http://www.entropy.ch/blog/Mac+OS+X/2005/02/28/Terminal_tricks_8220_term_8221_and_8220_clone_8221.html
(Auf "typische Nutzer": es gibt verschiedene Universen, jedes das finden die anderen komisch.
Kommt aus der Unix-Welt, bin ich verwendet, um ein Prozess-oder "| - Rohr args" irgendwo eine Datei verwendet werden können;
dieses hilft software-Baugruppen immens.
Aber offen -ein nicht nur für Dateien-anderes Universum).