臨時文件:
#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[] 硬件類型
新聞熱點
疑難解答