setgroupspid()
QNX SDP8.0C Library ReferenceAPIDeveloper
Set supplementary group IDs for a child process
Synopsis:
#include <unistd.h>
int setgroupspid( int gidsetsize,
const gid_t *grouplist,
pid_t pid );
Arguments:
- gidsetsize
- The number of entries in the grouplist array.
This number can't exceed
sysconf(_SC_NGROUPS_MAX)
. - grouplist
- An array of the supplementary group IDs that you want to assign to the calling process.
- pid
- The process ID of a child of the calling process, or 0 to set the groups for the calling process.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The setgroupspid() function sets the group access list of the process identified by pid to the array of group IDs in grouplist. This function lets you modify a child process's supplementary group set without having to set the parent's groups before spawning.
Note:
- The process identified by pid must be a child of the calling process, must have been created by posix_spawn() or posix_spawnp() with the POSIX_SPAWN_HOLD flag set, and must not have yet received a SIGCONT.
- In order to set new groups or delete existing groups, your process must have the PROCMGR_AID_SETGID ability enabled. For more information, see procmgr_ability().
Returns:
0, or -1 if an error occurred (errno is set).
Errors:
- EFAULT
- The grouplist argument isn't a valid pointer.
- EINVAL
- The value of gidsetsize is larger than
sysconf(_SC_NGROUPS_MAX)
. - EPERM
- One of the following occurred:
- The calling process doesn't have the required permission; see procmgr_ability().
- The process identified by pid isn't a child of the calling process.
- The child process isn't held.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | No |
Thread | Yes |
Page updated: