Maison >développement back-end >Golang >Comment utiliser les binaires dans Go ?
#🎜🎜Le langage #Go est un langage compilé fortement typé, typé statiquement. Il est largement utilisé dans la programmation réseau, le développement de serveurs, la programmation système et d'autres domaines. L'utilisation de fichiers binaires en langage Go est une tâche très courante. Cet article détaille comment utiliser les fichiers binaires en Go.
1. Qu'est-ce qu'un fichier binaire ? Dans un ordinateur, un fichier binaire est un fichier que la machine peut exécuter directement. Il contient tout le code du programme et les données nécessaires au moment de l'exécution. Les binaires sont généralement produits par le processus d'un compilateur consistant à compiler le code source en code exécutable par machine. Dans les systèmes Unix/Linux, le suffixe des fichiers binaires est généralement « .bin » ou « .elf ». Il existe deux principaux types de fichiers binaires impliqués dans le langage Go : les fichiers exécutables et les fichiers de bibliothèque. Un fichier exécutable est un fichier binaire pouvant être directement exécuté. Les fichiers exécutables courants incluent le fichier exécutable du programme Go (suffixe ".exe" ou pas de suffixe), le fichier exécutable du programme C (suffixe ".out"), etc. attendez. Un fichier bibliothèque est un fichier binaire contenant des fonctions et des données pouvant être liées à d'autres programmes. Le suffixe des fichiers de bibliothèque est généralement « .a » (bibliothèque statique) ou « .so » (bibliothèque dynamique). 2. Générer un fichier exécutablepackage main import "fmt" func main() { fmt.Println("Hello, world!") }Enregistrez le code ci-dessus dans le fichier "main.go".
go build main.goAprès exécution, un fichier exécutable nommé "main" sera généré. Nous pouvons exécuter ce fichier dans la fenêtre de ligne de commande :
./mainAprès l'exécution, "Hello, world!" sera affiché sur le terminal.
GOOS=linux GOARCH=amd64 go build main.goAprès l'exécution, un fichier exécutable nommé "main" sera généré dans le répertoire courant, qui pourra être exécuté sous Linux continuer à courir. 3. Générer des fichiers de bibliothèque
package mylib func Add(a, b int) int { return a + b }Enregistrez le code ci-dessus dans le fichier "mylib.go".
go build -o mylib.a -buildmode=c-archive mylib.goAprès exécution, un fichier de bibliothèque statique nommé "mylib.a" sera généré dans le répertoire courant.
package main import ( "fmt" "mylib" ) func main() { sum := mylib.Add(1, 2) fmt.Println(sum) }Exécutons la commande suivante pour compiler le programme :
go build main.go#🎜🎜 # Après l'exécution, "3" sera affiché sur le terminal.
4. Lecture de fichiers binaires
Le langage Go fournit des API puissantes pour lire des fichiers binaires, telles que la fonction os.Open, la fonction io.ReadFull, etc. Ces API nous permettent de lire les données de fichiers binaires et de les convertir en variables en langage Go.
Ce qui suit est un exemple, qui ouvre un fichier binaire nommé "test.bin" et y lit un entier :
package main import ( "encoding/binary" "fmt" "os" ) func main() { // 打开二进制文件 file, err := os.Open("test.bin") if err != nil { fmt.Println(err) return } defer file.Close() // 读取一个int32类型的整数 var num int32 err = binary.Read(file, binary.LittleEndian, &num) if err != nil { fmt.Println(err) return } fmt.Println("Num is", num) }
Exécutez le code ci-dessus, il lira un entier à partir d'un fichier binaire nommé "test.bin" et imprimez-le sur le terminal.
5. Résumé
Utiliser des fichiers binaires est l'une des tâches de base du langage Go. Dans cet article, nous avons expliqué comment générer des exécutables et des bibliothèques dans Go, et comment utiliser les bibliothèques. En parallèle, nous avons également appris à lire les données des fichiers binaires. Ces compétences sont toutes nécessaires pour rédiger des applications vraiment utiles. Nous pouvons étendre et personnaliser davantage ces fonctionnalités grâce à des concepts avancés du langage Go tels que les adresses et les tuyaux. Par conséquent, il est très utile de maîtriser les compétences nécessaires pour travailler avec des binaires en langage Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!