linux c获得系统用户信息

本文介绍如何通过C语言获取当前进程的PID、父进程的PID、用户ID、有效用户ID、组ID、有效组ID,并通过getpwuid()函数获取用户详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <unistd.h>
#include <pwd.h>
#include <sys/types.h>
#include <stdio.h>
int main(int argc, char **argv)
{
    pid_t my_pid, parent_pid;//*_t 均为int类型
    uid_t my_uid, my_euid;
    gid_t my_gid, my_egid;
    struct passwd *my_info;
    my_pid = getpid();
    parent_pid = getppid();
    my_uid = getuid();
    my_euid = geteuid();
    my_gid = getgid();
    my_egid = getegid();
    my_info = getpwuid(my_uid);//可以指定用户id
    printf("Process ID:%d\n", my_pid);
    printf("Parent ID:%d\n", parent_pid);
    printf("User ID:%d\n", my_uid);
    printf("Effective User ID:%d\n", my_euid);
    printf("Group ID:%d\n", my_gid);
    printf("Effective Group ID:%d\n", my_egid);
    if (my_info) {
        printf("My Login Name:%s\n", my_info->pw_name);
        printf("My Password :%s\n", my_info->pw_passwd);
        printf("My User ID :%d\n", my_info->pw_uid);
        printf("My Group ID :%d\n", my_info->pw_gid);
        printf("My Real Name:%s\n", my_info->pw_gecos);
        printf("My Home Dir :%s\n", my_info->pw_dir);
        printf("My Work Shell:%s\n", my_info->pw_shell);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值