Source File
sysreadfile.go
Belonging Package
github.com/prometheus/procfs/internal/util
// Copyright 2018 The Prometheus Authors// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.//go:build (linux || darwin) && !appengine// +build linux darwin// +build !appenginepackage utilimport ()// SysReadFile is a simplified os.ReadFile that invokes syscall.Read directly.// https://github.com/prometheus/node_exporter/pull/728/files//// Note that this function will not read files larger than 128 bytes.func ( string) (string, error) {, := os.Open()if != nil {return "",}defer .Close()// On some machines, hwmon drivers are broken and return EAGAIN. This causes// Go's os.ReadFile implementation to poll forever.//// Since we either want to read data or bail immediately, do the simplest// possible read using syscall directly.const = 128:= make([]byte, ), := syscall.Read(int(.Fd()), )if != nil {return "",}return string(bytes.TrimSpace([:])), nil}// SysReadUintFromFile reads a file using SysReadFile and attempts to parse a uint64 from it.func ( string) (uint64, error) {, := SysReadFile()if != nil {return 0,}return strconv.ParseUint(strings.TrimSpace(string()), 10, 64)}// SysReadIntFromFile reads a file using SysReadFile and attempts to parse a int64 from it.func ( string) (int64, error) {, := SysReadFile()if != nil {return 0,}return strconv.ParseInt(strings.TrimSpace(string()), 10, 64)}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |