代理收费服务系统部分知识点
2010-09-11 22:32
225 查看
1 isspace函数
函数功能:监测参数是否为空格。
成功返回为true
2 va_list,va_start,va_end
为解决可变参数的一组宏
如 void fun(int i,...);//用三点代表的是可变参数,注意第一个参数是固定的。
va_list:可变参数类型。typedef char * va_list//(1) va_list para;
void va_start(va_list arg_ptr, prev_param);//(2) va_start(para, i);
arg_ptr指向第一个可变参数在堆栈上的地址。//三点代表的部分
type va_arg( va_list arg_ptr, type );//返回可变参数的值
va_end(ap);使va_list类型指针不在指向堆栈内存
举例用法:
e.g1:
//va_fun(100,200);
3. 关于时间函数
//详细可见http://www.xxlinux.com/linux/article/development/soft/20061101/5607.html
char * asctime(const struct tm *
timeptr);
将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为:“Wed Jun 30 21:49:08 1993/n”
char *ctime(const time_t *
timep);
将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为“Wed Jun 30 21 :49 :08 1993/n”
struct tm*gmtime(const time_t*timep);
将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回
struct tm *localtime(const time_t * timep);
将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。结构tm的定义请参考gmtime()。此函数返回的时间日期已经转换成当地时区
time_t time(time_t *t);
返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存
一般获得系统时间用法:
struct tm* tp
long secs;
secs = time((long *)0);
tp = localtime(&secs);
printf("%04d%02d%02d", tp->tm_year + 1900, tp->tm_month +1, tp->tm_mday);
注意:
struct tm
{
}
//tm_year 从1900年算起至今的年数。
//tm_month目前月份,0~11
//tm_day目前月份的日期数
4 vfprintf
printf;
fprintf;
int vfprintf(FILE *fp, const char *fmt, va_list ap);
根据fmt字符串来转换并格式化数据,然后将结果输出到参数fp所指定的文件中。直到出现字符串结束为止。
int sscanf(const char *str, const char *fmt,...);
将参数str的字符串根据参数fmt字符串来转换并格式化数据。转换后的结果存于对应的参数内。
如
char buf = {"127.0.0.1 8080"}
char hostIP[21];
int port;
sscanf(buf, "%s %d",hostIP, &
port);//取地址符勿丢。
//对于提取字符串中的记录很有效。要注意字符串内各个部分可以用空格(一个或多个),/n,/t等分隔符隔开。这对于读出文件中保存的数据
到字符串,然后分别得到对应的值,非常有用的一个用法。
(strtok 函数也很不错)
5 典型文件操作函数
char *fgets(char *s, int size, FILE *fp);
//从fp文件中读入字符并存到s所指的内存空间。直到出现换行字符,读到文件结尾或是已经读了size-1个字符为止
。
若成功返回s指针,返回NULL则表示有误。(多用于读出一行数据)
int fputs(const char *s, FILE *fp);//
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *fp);
//从文件流读取数据。对于结构体的操作多用此函数来读。
struct test
{
char name[20];
int size;
}s[3];
FILE *fp = fopen("...");
如fread(s, sizeof(struct test), 3 , fp);
fwrite()
//块状读,块状写
fprintf
fscanf
6. 对命令行参数解析
//详细见 http://apps.hi.baidu.com/share/detail/16245935
如 ./run {-s,-x} -c input.cfg
关于struct option
struct option{
const char *name;
int has_arg;
int *flag;
int val;
};
struct option longopts[] =
{
{"start",0,NULL,'s'},
{"config", 1, NULL, 'c'},
...
{0,0,0,0}
}
getopt_long()
int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);
//http://blog.csdn.net/kenby/archive/2009/04/06/4051604.aspx也讲得很好。
函数功能:监测参数是否为空格。
成功返回为true
2 va_list,va_start,va_end
为解决可变参数的一组宏
如 void fun(int i,...);//用三点代表的是可变参数,注意第一个参数是固定的。
va_list:可变参数类型。typedef char * va_list//(1) va_list para;
void va_start(va_list arg_ptr, prev_param);//(2) va_start(para, i);
arg_ptr指向第一个可变参数在堆栈上的地址。//三点代表的部分
type va_arg( va_list arg_ptr, type );//返回可变参数的值
va_end(ap);使va_list类型指针不在指向堆栈内存
举例用法:
e.g1:
void va_fun(int i,...) { va_list arg_ptr; int j=0; va_start(arg_ptr,i); j = va_arg(arg_ptr, int); va_end(arg_ptr); printf("%d,%d",i,j); }
//va_fun(100,200);
3. 关于时间函数
//详细可见http://www.xxlinux.com/linux/article/development/soft/20061101/5607.html
char * asctime(const struct tm *
timeptr);
将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为:“Wed Jun 30 21:49:08 1993/n”
char *ctime(const time_t *
timep);
将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为“Wed Jun 30 21 :49 :08 1993/n”
struct tm*gmtime(const time_t*timep);
将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回
struct tm *localtime(const time_t * timep);
将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。结构tm的定义请参考gmtime()。此函数返回的时间日期已经转换成当地时区
time_t time(time_t *t);
返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。
如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存
一般获得系统时间用法:
struct tm* tp
long secs;
secs = time((long *)0);
tp = localtime(&secs);
printf("%04d%02d%02d", tp->tm_year + 1900, tp->tm_month +1, tp->tm_mday);
注意:
struct tm
{
}
//tm_year 从1900年算起至今的年数。
//tm_month目前月份,0~11
//tm_day目前月份的日期数
4 vfprintf
printf;
fprintf;
int vfprintf(FILE *fp, const char *fmt, va_list ap);
根据fmt字符串来转换并格式化数据,然后将结果输出到参数fp所指定的文件中。直到出现字符串结束为止。
int sscanf(const char *str, const char *fmt,...);
将参数str的字符串根据参数fmt字符串来转换并格式化数据。转换后的结果存于对应的参数内。
如
char buf = {"127.0.0.1 8080"}
char hostIP[21];
int port;
sscanf(buf, "%s %d",hostIP, &
port);//取地址符勿丢。
//对于提取字符串中的记录很有效。要注意字符串内各个部分可以用空格(一个或多个),/n,/t等分隔符隔开。这对于读出文件中保存的数据
到字符串,然后分别得到对应的值,非常有用的一个用法。
(strtok 函数也很不错)
5 典型文件操作函数
char *fgets(char *s, int size, FILE *fp);
//从fp文件中读入字符并存到s所指的内存空间。直到出现换行字符,读到文件结尾或是已经读了size-1个字符为止
。
若成功返回s指针,返回NULL则表示有误。(多用于读出一行数据)
int fputs(const char *s, FILE *fp);//
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *fp);
//从文件流读取数据。对于结构体的操作多用此函数来读。
struct test
{
char name[20];
int size;
}s[3];
FILE *fp = fopen("...");
如fread(s, sizeof(struct test), 3 , fp);
fwrite()
//块状读,块状写
fprintf
fscanf
6. 对命令行参数解析
//详细见 http://apps.hi.baidu.com/share/detail/16245935
如 ./run {-s,-x} -c input.cfg
关于struct option
struct option{
const char *name;
int has_arg;
int *flag;
int val;
};
struct option longopts[] =
{
{"start",0,NULL,'s'},
{"config", 1, NULL, 'c'},
...
{0,0,0,0}
}
getopt_long()
int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);
//http://blog.csdn.net/kenby/archive/2009/04/06/4051604.aspx也讲得很好。
相关文章推荐
- Android系统的Binder机制之二——服务代理对象(1)
- Android系统的Binder机制之三——服务代理对象(2)
- Android系统的Binder机制之二——服务代理对象(1)
- 河南郑州网欣物业客户服务收费管理系统
- Android系统的Binder机制之二——服务代理对象(1)
- Android系统的Binder机制之三——服务代理对象(2)
- 20151209linux系统日常管理第四部分(系统服务管理;系统日志,xargs与exec)
- Android系统的Binder机制之二——服务代理对象(1)
- Android系统Binder机制之二(服务代理对象 上篇)
- 代理模式(二):代理模式应用实例(收费商务信息查询系统)
- 系统编程部分知识点总结
- SQL邮件服务(解决各种疑难杂症)+案例 + 使用SQLserver 邮件系统发送SQL代理作业执行警告
- Android系统的Binder机制之三——服务代理对象(2)
- Android系统Binder机制之二(服务代理对象 上篇)
- Android系统Binder机制之三(服务代理对象 下篇)
- Android系统Binder机制之三(服务代理对象 下篇)
- linux学习入门 基础部分(9)[1.系统日志默认分类2.日志管理服务rsyslog3.日志分析工具journa4.时间同步5.timedatectl命令]
- linux系统服务总结之六:SQUID代理简单上网配置
- Microsoft代理服务系统的分析与实现方法
- Android系统Binder机制之三(服务代理对象 下篇)