(Go) Programmverzeichnis = aktuelles Verzeichnis

27/10/2010 - 10:03 von Stefan Scholl | Report spam
Getwd ist im Package "os", also müsste ein Chdir auch dort zu
finden sein, oder?

Nein. Versteckt sich in "syscall".

Für ein kleines Projekt wollte ich Templates ins
Programmverzeichnis legen, aber den Pfad dahin nicht immer im
Aufrufparameter übergeben. Das ist die Lösung:

dir, _ := path.Split(os.Args[0])
syscall.Chdir(dir)


Das os.Args[0] verhàlt sich analog dem argv[0] bei C.


Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/
<!--[if IE 6]><script>for(x in document.open);</script><![endif]-->
 

Lesen sie die antworten

#1 Florian Weimer
29/10/2010 - 22:24 | Warnen spam
* Stefan Scholl:

Getwd ist im Package "os", also müsste ein Chdir auch dort zu
finden sein, oder?

Nein. Versteckt sich in "syscall".



Der Grund dürfte sein, daß man in einer Multi-Threading-Umgebung wie
Go globale Prozeßattribute wie das aktuelle Verzeichnis tunlichst
nicht àndern sollte. Bei Java ist das auch so.

Ähnliche fragen