临时文件:
#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[] 硬件类型
新闻热点
疑难解答