geteuids.lisp 431 B

12345678910111213141516171819
  1. (in-package :hurd)
  2. (defcfun ("geteuids" %geteuids)
  3. :int
  4. (n :int)
  5. (uids :pointer))
  6. (defconstant +default-geteuids-size+ 20)
  7. (defun geteuids ()
  8. "Get the effective UID set."
  9. (with-foreign-pointer (ptr (* +uid-t-size+
  10. +default-geteuids-size+))
  11. (let ((total (%geteuids +default-geteuids-size+ ptr)))
  12. (loop for i from 0 below total
  13. collect (mem-aref ptr 'uid-t i)))))