Golang: Menyelesaikan Ralat "Deskriptor Fail Buruk" Semasa Melampirkan pada Fail Pengelogan
Apabila cuba menambah fail pengelogan dalam rutin Go , sesetengah pembangun menghadapi ralat "deskriptor fail buruk". Walaupun memastikan fail itu wujud dan mempunyai kebenaran yang sewajarnya, isu ini berterusan.
Analisis dan Penyelesaian
Penyiasatan lanjut mendedahkan bahawa ralat timbul disebabkan ketiadaan bendera O_WRONLY dalam panggilan fungsi OpenFile. Secara lalai, deskriptor fail yang diperoleh adalah baca sahaja.
Untuk membetulkan isu ini, tambahkan bendera O_WRONLY pada panggilan fungsi os.OpenFile. Berikut ialah kod yang diperbetulkan:
if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { /*[...]*/ }
Seperti yang didokumenkan dalam halaman manual fungsi terbuka Linux, salah satu daripada mod akses berikut mesti ditentukan: O_RDONLY, O_WRONLY atau O_RDWR. Bendera ini masing-masing menunjukkan akses baca sahaja, tulis sahaja atau baca/tulis. Dalam kes ini, menggunakan O_APPEND sahaja menghasilkan deskriptor fail baca sahaja, yang membawa kepada ralat. Menambah bendera O_WRONLY memastikan deskriptor fail tulis sahaja.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Deskriptor Fail Buruk' Semasa Melampirkan Fail Log di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!