Go を使用して生のディスク セクターにアクセスしたり、マスター ブート レコード (MBR) の謎を調査したりすることに興味がありますか?最初の問い合わせは行き止まりにつながる可能性があり、議論は Go のネイティブ IO パッケージを中心に展開することがよくあります。
あなたの好奇心を満たすために、低レベルのディスク I/O の複雑さを掘り下げるコードの調査に着手しましょう。 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>
このコード スニペットは、主に Linux API をターゲットにしながら、さまざまなプラットフォームとの互換性を提供する syscall パッケージを利用しています。
ファイル記述子を開くには、ディスク パス (" /dev/sda") と必要な権限。次に、読み取り呼び出しが発行されて、生データのバッファが取得されます。出力には、読み取られたバイト数とバッファーのバイナリ表現が表示され、ディスク セクターの内容が一目でわかります。
低レベルのディスク I/O 操作には注意が必要であることに注意してください。機密データが侵害される可能性があります。したがって、これらの手法を試すときは、十分な注意を払ってください。
以上がGolang で低レベルのディスク I/O を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。