Untuk pemula dalam Go, melaksanakan paip bernama menimbulkan cabaran apabila mencari keserasian dengan Windows dan Linux. Artikel ini menangani teka-teki ini, menyediakan penyelesaian untuk mencapai kebolehoperasian yang lancar merentas platform.
Mencipta paip bernama dalam Go adalah mudah di Linux menggunakan syscall.Mkfifo, tetapi gagal pada Windows. Masalahnya berpunca daripada pelaksanaan khusus platform bagi paip bernama dalam Go.
Go tidak mempunyai abstraksi terbina dalam untuk penggunaan paip bernama merentas platform. Walau bagaimanapun, komuniti telah membangunkan perpustakaan yang merapatkan jurang ini:
Menggunakan npipe untuk mencipta dan membuka paip bernama pada kedua-dua Windows dan Linux:
<code class="go">package main import ( "fmt" "os" "github.com/natefinch/npipe" ) const pipeName = "tmpPipe" func main() { // Create pipe if err := npipe.Mkfifo(pipeName, 0666); err != nil { fmt.Println(err) return } // Open pipe for writing file, err := os.OpenFile(pipeName, os.O_RDWR, os.ModeNamedPipe) if err != nil { fmt.Println(err) return } // Open pipe for reading file, err := os.OpenFile(pipeName, os.O_RDONLY, os.ModeNamedPipe) if err != nil { fmt.Println(err) return } }</code>
Dengan mengguna pakai penyelesaian ini, pembangun boleh mencipta dan berinteraksi dengan paip dinamakan secara konsisten merentas Windows dan Persekitaran Linux.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi Paip Dinamakan Cross-Platform dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!