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 + -
显示快捷键?