代理收费服务系统部分知识点

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也讲得很好。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值