摘要:fopen打开配置文件,不需要绝对路径,可以使相对路径fgets按行读取文件while(fgets(buf, 1024, fptr)){}strtok_r或者strtok解析参数 int main(int argc, char *argv[]) { ...
阅读全文
摘要:dlopen(path, mode)加载动态库动态库创建:gcc -fPIC -shared插件:1.配置是否有检查。conf2.读取配置3.有插件则函数指针赋值,否则赋值为null4 调用函数指针
阅读全文
摘要:http://xidianzhangjun.blog.163.com/blog/static/115488771201072081052719/
阅读全文
摘要:printf():标准输出sprintf(s, "%d", inta):这个函数的功能就是将某一个类型的数据变成字符串s的形式(会自动加\0)snprintf(s, sizeof(s),..,..): 防止s空间不够,导致溢出
阅读全文
摘要:time_t time(time_t *t);如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。函数: ctime功 能: 把日期和时间转换为字符串用 法: char *ctime(const time_t *time);#include#incl...
阅读全文
摘要:read(fd, buf, number)从fd中申请读取number个字符,返回实际读取的数,若达到文件末,则返回0.若文件中有30个字符,number设置100第一次:read返回30第二次:read返回0故一般读取文件形式:while((n = read(fd,buf,number)) >0)...
阅读全文
摘要:在定义宏的过程中,需要把参数都用括号括起来,然后在最后用括号把整个结果表达式括起来目的:防止引起与优先级有关的问题。c陷阱,《预处理》宏中有递增等符号,容易引发错误#define T1 struct fooT1 a, b 错误typedef struct foo{}T1;T1 a, b;
阅读全文
摘要:static 可以减少命名冲突如:test1.c:int atest2.c : int agcc test1.c test2.c报重复定义错误但是在其中一个加static,可解决此问题同样适用于函数。
阅读全文
摘要:无符号数相加不会发生溢出。因为会直接截断。但是有符号数相加,会发生溢出。溢出表示大于最大表示了那么如何判断有符号数发生溢出呢?下面两个非负数相加if(a + b INT_MAX - b)可行,不计算a+b或者(unsigned)a + (unsigned)b > INT_MAX 换成无符号,a+b...
阅读全文
摘要:对齐规律:占用最大成员类型的整数倍,每个成员的对齐地址为该成员类型的整数倍struct{ int a; 0-3char b;4-5 int c;8-11}:12含位域:使用位域的主要目的是压缩存储,其大致规则为:1)如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将...
阅读全文
摘要:sizeof 计算数据类型占多少字节int *p,sizeof(p) :4 sizeof(*p) :4int a[10] sizeof(a) :40char str[]="hello" sizeof(str):6 strlen(str):5void fun(int a[10]) 等价int *a{...
阅读全文
摘要:scanf: scanf("%c",..):可以读取空格、换行符、制表符等 scanf("%d",...):开始忽略空格、换行符、制表符,直到读取到一个字符 scanf("%s",...):开始读取时忽略空格、换行符、制表符,直到开始读取字符串,最后以空格、换行符、制表符结束,不丢弃任何字符g...
阅读全文