zoukankan      html  css  js  c++  java
  • 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()返回的文件名相同的文件。

       

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

      

  • 相关阅读:
    Java精度计算与舍入
    java--序列化及其算法透析
    java--序列化及其算法透析
    python脚本删除文件与目录的命令
    合成大西瓜CocosCreator开发源码(可跨平台构建:小程序、android...)
    如何使用C++做个简单推箱子游戏
    unityZXing二维码的生成与扫描
    第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)全题解
    unityZXing二维码的生成与扫描
    35岁的程序员:第20章,解脱
  • 原文地址:https://www.cnblogs.com/Mrwang-tju/p/12198486.html
Copyright © 2011-2022 走看看