golang package syscall

import “syscall”

type Rlimit struct {
    Cur uint64
    Max uint64
}
RLIMIT_NOFILE                    = 0x7
func Getrlimit(resource int, rlim *Rlimit) (err error)
package main

import (
	"fmt"
	"syscall"
)

func main() {
	var limit syscall.Rlimit
	syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limit)
	fmt.Println(int(limit.Cur)) // 检索此进程允许打开的文件描述符的数量
	fmt.Println(int(limit.Max)) // 检索此进程允许自己请求的文件描述符的最大数量
}

运行结果:
1024
1048576


package main

import (
	"fmt"
	"syscall"
)

func main() {
	var limit syscall.Rlimit
	syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limit)
	fmt.Println(int(limit.Cur))
	fmt.Println(int(limit.Max))

	limit.Cur = limit.Max
	if limit.Cur > 2048 {
		limit.Cur = 2048
	}
	syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limit)

	syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limit)
	fmt.Println(int(limit.Cur))
	fmt.Println(int(limit.Max))
}

运行结果:
1024
1048576
2048
1048576


文档:https://gowalker.org/syscall

func UTF16PtrFromString(s string) (*uint16, error)

返回指向UTF-8字符串的UTF-16编码的指针,并添加一个终止NUL。如果s在任何位置包含一个NUL字节,它返回(nil, EINVAL)。

func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) 

你可能感兴趣的:(go)