mirror of
https://github.com/criyle/go-sandbox.git
synced 2025-11-04 14:49:53 +08:00
39 lines
778 B
Go
39 lines
778 B
Go
package cgroup
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"path"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// SubCGroup is the sub-cgroup
|
|
type SubCGroup struct {
|
|
path string
|
|
}
|
|
|
|
// NewSubCGroup creates a sug CGroup
|
|
func NewSubCGroup(p string) *SubCGroup {
|
|
return &SubCGroup{
|
|
path: p,
|
|
}
|
|
}
|
|
|
|
// WriteUint writes uint64 into given file
|
|
func (c *SubCGroup) WriteUint(filename string, i uint64) error {
|
|
return ioutil.WriteFile(path.Join(c.path, filename), []byte(strconv.FormatUint(i, 10)), 644)
|
|
}
|
|
|
|
// ReadUint read uint64 into given file
|
|
func (c *SubCGroup) ReadUint(filename string) (uint64, error) {
|
|
b, err := ioutil.ReadFile(path.Join(c.path, filename))
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
s, err := strconv.ParseUint(strings.TrimSpace(string(b)), 10, 64)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return s, nil
|
|
}
|