Source File
listgroups_unix.go
Belonging Package
os/user
// Code generated by cmd/cgo; DO NOT EDIT.//line /opt/homebrew/Cellar/go/1.16.3/libexec/src/os/user/listgroups_unix.go:1:1// Copyright 2016 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// +build dragonfly darwin freebsd !android,linux netbsd openbsd// +build cgo,!osusergopackage userimport ()/*#include <unistd.h>#include <sys/types.h>*/import _const maxGroups = 2048func listGroups(u *User) ([]string, error) {ug, err := strconv.Atoi(u.Gid)if err != nil {return nil, fmt.Errorf("user: list groups for %s: invalid gid %q", u.Username, u.Gid)}userGID := /*line :29:13*/_Ctype_gid_t /*line :29:20*/(ug)nameC := make([]byte, len(u.Username)+1)copy(nameC, u.Username)n := /*line :33:7*/_Ctype_int /*line :33:12*/(256)gidsC := make([] /*line :34:18*/_Ctype_gid_t /*line :34:25*/, n)rv := getGroupList((* /*line :35:23*/_Ctype_char /*line :35:29*/)(unsafe.Pointer(&nameC[0])), userGID, &gidsC[0], &n)if rv == -1 {// Mac is the only Unix that does not set n properly when rv == -1, so// we need to use different logic for Mac vs. the other OS's.if err := groupRetry(u.Username, nameC, userGID, &gidsC, &n); err != nil {return nil, err}}gidsC = gidsC[:n]gids := make([]string, 0, n)for _, g := range gidsC[:n] {gids = append(gids, strconv.Itoa(int(g)))}return gids, nil}
The pages are generated with Golds v0.2.8-preview. (GOOS=darwin GOARCH=arm64)