首页 > 系统 > Linux > 正文

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

2024-06-28 16:02:46
字体:
来源:转载
供稿:网友

临时文件:

#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[] 硬件类型


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表