limit_unix.go 416 B

1234567891011121314151617181920212223242526
  1. // +build aix dragonfly freebsd linux netbsd openbsd solaris
  2. package sys
  3. import (
  4. "syscall"
  5. )
  6. // SetLimit set NOFILE
  7. func SetLimit(max uint64) error {
  8. var rlimit syscall.Rlimit
  9. err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit)
  10. if err != nil {
  11. return err
  12. }
  13. rlimit.Cur = max
  14. rlimit.Max = max
  15. err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit)
  16. if err != nil {
  17. return err
  18. }
  19. return nil
  20. }