.\" Copyright (c) 1983 Regents of the University of California. .\" All rights reserved. The Berkeley software License Agreement .\" specifies the terms and conditions for redistribution. .\" .\" @(#)setgroups.2 6.3 (Berkeley) 5/13/86 .\" .TH SETGROUPS 2 "May 13, 1986" .UC 5 .SH NAME setgroups \- set group access list .SH SYNOPSIS .nf .ft B #include .PP .ft B setgroups(ngroups, gidset) int ngroups, *gidset; .fi .SH DESCRIPTION .I Setgroups sets the group access list of the current user process according to the array .IR gidset . The parameter .I ngroups indicates the number of entries in the array and must be no more than NGROUPS, as defined in .RI < sys/param.h >. .PP Only the super-user may set new groups. .SH "RETURN VALUE A 0 value is returned on success, \-1 on error, with a error code stored in \fIerrno\fP. .SH "ERRORS The \fIsetgroups\fP call will fail if: .TP 15 [EPERM] The caller is not the super-user. .TP 15 [EFAULT] The address specified for \fIgidset\fP is outside the process address space. .SH "SEE ALSO getgroups(2), initgroups(3X) .SH BUGS The .I gidset array should be of type .BR gid_t , but remains integer for compatibility with earlier systems.