101 votes

Ce qui est d'Aller de l'équivalent de argv[0]?

Comment puis-je obtenir mon propre nom du programme au moment de l'exécution? Ce qui est d'Aller de l'équivalent de C/C++de argv[0]? Pour moi, c'est utile pour générer l'utilisation avec le bon nom.

Mise à jour: ajout d'un peu de code.

package main

import (
    "flag"
    "fmt"
    "os"
)

func usage() {
    fmt.Fprintf(os.Stderr, "usage: myprog [inputfile]\n")
    flag.PrintDefaults()
    os.Exit(2)
}

func main() {
    flag.Usage = usage
    flag.Parse()

    args := flag.Args()
    if len(args) < 1 {
        fmt.Println("Input file is missing.");
        os.Exit(1);
    }
    fmt.Printf("opening %s\n", args[0]);
    // ...
}

141voto

cthom06 Points 3998

import "os"

Les Arguments sont exposés dans l'
package http://golang.org/pkg/os/#Variables

Si vous allez faire de l'argument de la manipulation, l' os.Args[0] // name of the command that it is running as os.Args[1] // first command line parameter, ... package http://golang.org/pkg/flag c'est la méthode. Spécifiquement pour votre cas os

Mise à jour pour l'exemple que vous avez donné:

flag

devrait faire l'affaire

16voto

nos Points 102226

utiliser os.Args[0] de l' os paquet

package main
import "os"
func main() {
    println("I am ", os.Args[0])
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X