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

用户信息&主机信息

20191022

13:39

通过检查环节变量与读取系统时间,程序可以很大程度上了解当前运行的信息。以内部机制来说,用户还有一个唯一的用户标识符UID,Linux每运行一个程序,实际上都是以某个用户的名义在执行,因此程序都会有一个关联的UID。

也可以使用SUID(文件属主ID),su命令(超级用户)来执行程序。

头文件 sys/types.h 中 定义了uid_t结构体

Linux有一个shadow密码文件,普通用户不允许读取,有一组函数来提供函数接口。

   

   

 Linux临时文件

1 #include <unistd.h>
2 
3 int gethostname(char *name, size_t namelen); //函数把机器的网络名写入name字符串,写入成功返回0,失败返回-1.
4 
5 int uname(struct utsname *name); //返回utname结构体 包含了主机更多的信息
6 
7 long gethostid(void); //返回与主机对应的一个唯一值,对于系统硬件是唯一的。Linux返回一个基于该机器因特网地址的值,但对于许可证管理来说不够安全。 

很多时候,程序会使用一些文件形式的临时存储手段,用来存储计算的中间结果或关键操作前的文件备份。多任务的系统中,必须保证程序里的临时文件名是唯一的,否则程序间将造成干扰。以下函数可以生成唯一的文件名

1 #include<stdio.h>
2 
3 char *tmpnam(char *s)

返回一个不与任何已存在文件同名的文件名。字符串的长度至少是20个字符,tmpnam最多可以被调用TMP_MAX次

使用tmpfile()函数,在使用tmpnam为临时文件命名后创建文件并将文件打开,可以避免另一个程序可能会创建出与tmpnam()返回的文件名相同的文件。

   

以下两个函数,与上边两个函数类似 区别在于可以按照指定的模板生成临时文件

  

posted @ 2020-01-15 19:55  MrWang_tju  阅读(172)  评论(0编辑  收藏  举报