Vous souhaitez accéder aux secteurs de disque bruts ou sonder les mystères du Master Boot Record (MBR) à l'aide de Go ? Les premières demandes de renseignements peuvent vous mener à des impasses, les discussions tournant souvent autour du package io natif de Go.
Pour satisfaire votre curiosité, lançons-nous dans une exploration de code qui approfondit les subtilités des E/S disque de bas niveau dans Golang :
<code class="go">package main import ( "syscall" "fmt" ) func main() { disk := "/dev/sda" var fd, numread int var err error fd, err = syscall.Open(disk, syscall.O_RDONLY, 0777) if err != nil { fmt.Print(err.Error(), "\n") return } buffer := make([]byte, 10, 100) numread, err = syscall.Read(fd, buffer) if err != nil { fmt.Print(err.Error(), "\n") } fmt.Printf("Numbytes read: %d\n", numread) fmt.Printf("Buffer: %b\n", buffer) err = syscall.Close(fd) if err != nil { fmt.Print(err.Error(), "\n") } }</code>
Cet extrait de code exploite le package syscall, qui offre une compatibilité avec diverses plates-formes tout en ciblant principalement l'API Linux.
Pour ouvrir un descripteur de fichier, spécifiez le chemin du disque (" /dev/sda") ainsi que les autorisations requises. Ensuite, un appel de lecture est émis pour récupérer un tampon de données brutes. La sortie affiche le nombre d'octets lus et une représentation binaire du tampon, donnant un aperçu du contenu d'un secteur de disque.
N'oubliez pas que les opérations d'E/S disque de bas niveau nécessitent de la prudence, car elles ont le potentiel de compromettre des données sensibles. Par conséquent, faites preuve de diligence raisonnable lorsque vous expérimentez ces techniques.
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!