Linux系统下C语言编程--进程的创建(2)
文章作者 100test 发表时间 2007:03:14 16:44:40
来源 100Test.Com百考试题网
进程是为程序服务的,而程序是为了用户服务的.系统为了找到进程的用户名,还为进程和用户建立联系.这个用户称为进程的所有者.相应的每一个用户也有一个用户ID.通过系统调用getuid可以得到进程的所有者的ID.由于进程要用到一些资源,而Linux对系统资源是进行保护的,为了获取一定资源进程还有一个有效用户ID.这个ID和系统的资源使用有关,涉及到进程的权限.通过系统调用geteuid我们可以得到进程的有效用户ID.和用户ID相对应进程还有一个组ID和有效组ID系统调用getgid和getegid可以分别得到组ID和有效组ID.
uid_t getuid(void).
uid_t geteuid(void).
gid_t getgid(void).
git_t getegid(void). |
有时候我们还会对用户的其他信息感兴趣(登录名等等),这个时候我们可以调用getpwuid来得到.
struct passwd {
char *pw_name. /* 登录名称 */
char *pw_passwd. /* 登录口令 */
uid_t pw_uid. /* 用户ID */
gid_t pw_gid. /* 用户组ID */
char *pw_gecos. /* 用户的真名 */
char *pw_dir. /* 用户的目录 */
char *pw_shell. /* 用户的SHELL */
}. |