Obtenir par programme UID et GID à partir du nom d'utilisateur dans Unix?

Je suis en train d'utiliser setuid() et setgid() pour définir l'id respectif d'un programme d'abandonner ses privilèges vers le bas à partir de la racine, mais de les utiliser j'ai besoin de savoir l'uid et le gid de l'utilisateur, je veux changer de.

Est-il un système d'appel pour ce faire? Je ne veux pas coder en dur ou à analyser à partir de /etc/passwd .

J'aimerais aussi le faire par programme plutôt que d'utiliser:

id -u USERNAME

Toute aide serait grandement appréciée

source d'informationauteur Evan