Linux环境-临时文件、用户信息、主机信息

本文介绍了Linux系统中处理临时文件的方法,包括tmpnam、tmpfile和mktemp函数,并探讨了用户身份标识符(UID)及其获取方式。同时,讲解了如何获取和使用用户登录名、详细信息,以及通过getpwuid和getpwnam获取passwd结构。此外,还涉及主机名的获取、主机唯一标识符和系统详细信息,如uname结构体的使用。
摘要由CSDN通过智能技术生成

临时文件:

#include <stdio.h>

char *tmpnam (char *s);

返回一个与所有已存在文件都不同的临时文件名,但是另外一个程序可能会创建出与之同名的文件,s也可保存临时文件名

FILE *tmpfile(void);

返回一个文件流指针,它指向一个唯一的临时文件。该文件以读写的方式打开(通常是以w+方式的fopen),

当对它的所有引用全部关闭时,该文件会被自动删除。

char *mktemp(char *template);

返回一个以给定的模板为基础创建一个唯一的文件名。

FILE *mkstemp(char *template);

与tmpfile类似,不过文件名是以template为模板创建的

用户信息:

在linux中每个用户都有一个唯一的标识符UID,而每个运行的程序都有是由一个用户的名义在执行的。

UID是用户身份的关键,它有一个自己的类型uid_t,定义在sys/types.h中

#include <sys/types.h>

#include <unistd.h>


uid_t getuid(void);//获得UID

char *getlogin(void);//获得用户登录名


通过UID或者login name获得详细的用户信息

#include <sys/types.h>

#include <pwd.h>

struct passwd *getpwuid(uit_t uid);

struct passwd *getpwnam(const char *name);

以上分别通过uid和name来获得passwd,出错时返回null并设置errno

passwd:

char *pw_name 用户登录名

uid_t pw_uid UID号

git_t pw_gid GID号

char *pw_dir 用户家目录

char *pw_gecos / *pw_comment 用户全名

char *pw_shell 用户默认shell

void setpwent(void);

struct passwd *getpwent(void);

void endpwent(void);

通过每次调用getpwent函数可以遍历所有的用户的信息数据,当到达文件位时其返回NULL

endpwent可以终止处理过程

setpwent可以重置读指针到密码文件开始位置

其他函数:

uid_t geteuid(void) ?

gid_t getegid(void) ?

git_t getgid(void)

int setuid(uid_t uid)

int setgid(gid_t gid)

主机信息:

网络名:

int gethostname(char *name, size_t namelen);

获得主机的网络名字符串写入name,name字符串至少有namelen个字符长,s 0 f -1

主机唯一标识符:

#include <unistd.h>

long gethostid(void);

可用来进行许可证管理

主机详细信息:

系统调用 uname 将主机信息写入utsname结构体中,s 非负整数,f -1并设置errno

#include <sys/utsname.h>

int  uname (struct utsname *name);

utsname:

char sysname[] 操作系统名

char nodename[] 主机名

char release[] 系统发行级别

char version[] 系统版本号

char machine[] 硬件类型


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值