在Unix中以编程方式从用户名获取UID和GID?

Eva*_*van 14 c c++ unix privileges system-calls

我正在尝试使用setuid()和setgid()来设置程序的相应id以从root删除权限,但要使用它们我需要知道我想要更改的用户的uid和gid.

是否有系统调用来执行此操作?我不想硬编码或从/ etc/passwd解析.

此外,我想以编程方式执行此操作,而不是使用:

id -u USERNAME

任何帮助将不胜感激