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

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

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。



你可能感兴趣的:(ipmsg学习笔记1—系统用户信息)