ipmsg学习笔记1—系统用户信息

本文介绍了如何使用三种方法获取Linux系统的详细信息,包括系统名称、网络名称、版本、硬件体系等;获取当前登录用户的信息,如用户名、用户ID、组ID、家目录等;以及获取当前工作目录的绝对路径。

获取系统信息,用户信息,路径

1)int uname(struct utsname *sysName);需要头文件sys/utsname.h,获取当前内核名称和其他信息,比如操作系统名,网络明等。

  struct utsname
  { char sysname[_UTSNAME_SYSNAME_LENGTH];//当前操作系统名
   char nodename[_UTSNAME_NODENAME_LENGTH];//网络上的名称
   char release[_UTSNAME_RELEASE_LENGTH];//当前发布级别
   char version[_UTSNAME_VERSION_LENGTH];//当前发布版本
   char machine[_UTSNAME_MACHINE_LENGTH];//当前硬件体系类型
#if _UTSNAME_DOMAIN_LENGTH - 0
    /* Name of the domain of this node on the network.  */
# ifdef __USE_GNU
    char domainname[_UTSNAME_DOMAIN_LENGTH]; //当前域名
# else
    char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
  };

返回说明: 
成功执行时,返回0。失败返回-1,errno被设为EFAULT,表示buf无效。

2) struct passwd* pwd;pwd = getpwuid(getuid());需要头文件sys/types.h;pwd.h

返回说明:

getpwuid函数是通过用户的uid查找用户的passwd数据。如果出错时,它们都返回一个空指针并设置errno的值,用户可以根据perror函数查看出错的信息。
 struct passwd {
  char*pw_name; /*user name */
  char*pw_passwd; /*user password */
  uid_t pw_uid; /*user id */
  gid_t pw_gid; /*group id */
  char*pw_gecos; /*real name */
  char*pw_dir; /*home directory */
  char*pw_shell; /*shell program */
  };
  

3)char* getcwd(workDir, sizeof(workDir));需要头文件unistd.h;

作用:把当前目录的绝对地址保存到 buf 中,buf 的大小为 size。如果 size太小无法保存该地址,返回 NULL 并设置 errno 为 ERANGE。可以采取令 buf 为 NULL并使 size 为负值来使 getcwd 调用 malloc 动态给 buf 分配,但是这种情况要特别注意使用后释放缓冲以防止内存泄漏。
程序例如果在程序运行的过程中,目录被删除(EINVAL错误)或者有关权限发生了变化(EACCESS错误),getcwd也可能会返回NULL。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值