1. 程序参数
main函数参数, int main(int argc,char *argv[]);
int getopt(int argc,char *const argv[],const char *optstring) getopt_long() 用于方便处理main参数问题
2. 环境变量
char *getenv(const char *name);
int putenv(const char *string);
环境由一组格式为“名字=值” 的字符串组成。
environ 变量 , 可以用循环通过此变量取出所有的环境变量
3. 时间和日期
tim_t the_time;
struct tm *tm_ptr;
time_t time(time_t *tloc); the_time = time((time_t *)0); (void) time(&the_time);
double difftime(time_t time1,time_t time2); 此函数计算time1 - time2的值
struct tm *gmtime(const time_t *timeval); tm_ptr = tmtime(&the_time);
struct tm *localtime(const time_t *timeeval); tm_ptr = localtime(&the_time);
time_t mktime(struct tm *timeptr); 将tm结构转换成原始的time_t时间值
char *asctime(const struct tm *timeptr);
char *ctime(const time_t *timeeval);
size_t strftime(char *s,size_t maxsize,const char *format,struct tm *timeptr); 对日期字符串格式更好的控制,构建日期时间字符串
size_t strptime(const char *buf,const char *format,struct tm *timeptr); 从日期时间字符串中读取并创建tm结构
4. 临时文件
char *tmpnam(char *s); 创建一个唯一的临时文件名,写到s中,最好创建后立即使用
FILE *tmpfile(void); 创建并打开一个唯一的临时文件,当对它的引用全部关闭时,文件临时文件会自动删除,推荐使用。
char *mktemp(char *template); 以给定的模板为基础创建一个唯一的文件名,template参数必须是一个以6个X字符结尾的字符串
char *mkstemp(char *template); 创建并打开一个临时文件,推荐使用。
5. 用户信息
#include<sys/types.h>
#include<unistd.h>
uid_t getuid(void);
char *getlogin(void); 返回与当前用户关联的用户名
获取用户信息的编程接口:
#include<sys/types.h>
#include<pwd.h>
struct passwd *getpwuid(uid_t uid);
strcut passwd *getpwnam(const char *name);
passwd成员:
char *pw_name 用户登录名
char *pw_uid UID号
char *pw_gid GID号
char *pw_dir 用户家目录
char *pw_gecos 用户全名
char *pw_shell 用户默认shell
其他不常用函数:
#include<pwd.h>
#include<sys/types.h>
void endpwent(void);
struct passwd *getpwent(void); 该函数依次返回每个用户的信息数据项,当到达文件尾时,返回一个空指针,可以用一个循环取出所有用户信息项
void setpwent(void);
#include<sys/types.h>
#include<unistd.h>
uid_t geteuid(void);
gid_t getgid(void);
gid_t getegid(void);
int setuid(uid_t uid); root
int setgid(gid_t gid); root
6. 主机信息
int gethostname(char *name ,size_t namelen);
#include<sys/utsname.h>
int uname(struct utsname *name); 获取关于主机的更多详细信息,出错返回 -1
utsname成员:
char sysname[] 操作系统名
char nodename[] 主机名
char release[] 系统发行级别
char version[] 系统版本号
char machine[] 硬件类型
#include<unistd.h>
long gethostid(void);
7. 日志
#include<syslog.h>
void syslog(int priority,const char *message,arguments ...); 向系统写日志
void closelog(void);
void openlog(const char *ident,int logopt,int facility);
int setlogmask(int maskpri);
8. 资源和限制
#include<sys/resource.h>
int getpriority(int witch,id_t who); 取得优先级
int setpriority(int witch,id_t who,int priority);
int getrlimit(int resource,struct rlimit *r_limit); 取得资源方面限制
int setrlimit(int resource,const struct rlimit *r_limit);
int getrusage(int who,struct rusage *r_usage); 取得CPU耗时
大体总结了一个,详细的参考《LINUX程序设计》,睡觉啦,很晚啦,2012/05/14 00:33