Skip to content

syscall: use prlimit64, not prlimit #2492

@hanwen

Description

@hanwen
Rlimit.Cur/Max should be declared as uint, not uint64. I'm on weekly 2011-11-18

/usr/include/linux/resource.h 
struct rlimit {
        unsigned long   rlim_cur;
        unsigned long   rlim_max;
};

on 386:

#include <sys/resource.h>
#include <stdio.h>
int main() {
  struct rlimit rl;
  getrlimit(RLIMIT_NOFILE, &rl);
  printf("sz %d c %d m %d", sizeof(rl.rlim_cur), rl.rlim_cur, rl.rlim_max);
}

=>

sz 4 c 1024 m 4096


8g however, 



package main
import (
    "syscall"
    "fmt"
    "unsafe"
)
const RLIMIT_NOFILE = 7
func main() {
    lim := syscall.Rlimit{}
    syscall.Getrlimit(RLIMIT_NOFILE, &lim)
    fmt.Printf("sz %d c %d m %d", unsafe.Sizeof(lim.Cur),
        lim.Cur, lim.Max)
}
=>
sz 8 c 17592186045440 m 0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions