getgroups.c

来自「Axis 221 camera embedded programing inte」· C语言 代码 · 共 37 行

C
37
字号
/* vi: set sw=4 ts=4: *//* * getgroups() for uClibc * * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org> * * GNU Library General Public License (LGPL) version 2 or later. */#include "syscalls.h"#include <unistd.h>#define MIN(a,b) (((a)<(b))?(a):(b))#define __NR___syscall_getgroups __NR_getgroupsstatic inline _syscall2(int, __syscall_getgroups,		int, size, __kernel_gid_t *, list);int getgroups(int n, gid_t * groups){	if (unlikely(n < 0)) {		__set_errno(EINVAL);		return -1;	} else {		int i, ngids;		__kernel_gid_t kernel_groups[n = MIN(n, sysconf(_SC_NGROUPS_MAX))];		ngids = __syscall_getgroups(n, kernel_groups);		if (n != 0 && ngids > 0) {			for (i = 0; i < ngids; i++) {				groups[i] = kernel_groups[i];			}		}		return ngids;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?