Mengapa Saya Mendapat Ralat 'Deskriptor Fail Buruk' dalam Rutin Pengelogan Saya?

Barbara Streisand
Lepaskan: 2024-11-23 10:44:11
asal
168 orang telah melayarinya

Why Am I Getting a

Membetulkan Isu "Bad File Descriptor" dalam Go Log Routine

Apabila menghadapi ralat "bad file descriptor" semasa melampirkan pada fail log dalam rutin Go, adalah penting untuk menyiasat punca asas. Ralat menunjukkan bahawa deskriptor fail tidak sah atau tidak sesuai untuk operasi yang dimaksudkan.

Dalam kes khusus ini, isu ini berpunca daripada pengabaian untuk menentukan bendera yang sesuai semasa membuka fail log. Secara lalai, fungsi os.OpenFile Go membuka fail dalam mod baca sahaja, oleh itu ralat "deskriptor fail buruk" semasa cuba menulis kepadanya.

Penyelesaian terletak pada penambahan bendera O_WRONLY pada os. Panggilan OpenFile. Bendera ini menunjukkan bahawa fail harus dibuka untuk menulis, memastikan bahawa deskriptor fail yang diperoleh adalah sah untuk operasi menulis. Berikut ialah kod yang diperbetulkan:

if f, err := os.OpenFile("./log.log", os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil { /*[...]*/ }
Salin selepas log masuk

Dengan memasukkan bendera O_WRONLY, rutin Go boleh berjaya membuka fail log untuk menulis dan menambah mesej log tanpa menghadapi ralat "deskriptor fail buruk".

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Deskriptor Fail Buruk' dalam Rutin Pengelogan Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan