1.操作mysql数据库
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW record;
char query[1024];
if ( !(mysql_init(&mysql)) ){
printf("mysql_init():failed");
return 1;
}
if ( mysql_real_connect(&mysql, DB_DBHOST, DB_DBUSER, DB_DBPWD, DB_DBNAME, DB_DBPORT,NULL,0) == NULL ){
printf("conncet errror!/n");
return 1;
}
bzero(query, sizeof(query) );
strcpy(query,"select * from trace");
mysql_real_query( &mysql, query, strlen(query) );
result = mysql_store_result( &mysql );
while( (record = mysql_fetch_row(result)) )
{
int id = atoi(record[1]);
char temp[10];
strcpy(temp, record[2]);
}
2 根据年月日得到是星期几
//具体原理是根据 蔡勒公式 不过只能算1582年以后
int getWeek(int y, int m, int d)//y为年,m为月,d为日
{
int c = y / 100;
int yy = y % 100;
int mm;
if (m == 1 || m == 2)
{
mm = m + 12;
yy -= 1;
}
else
mm = m;
return ( yy + yy/4+ c/4 - 2*c + 26*(mm+1)/10 + d-1 ) % 7;
}
3 常用的几个函数
printf;//打印
fprintf();//按某个格式,将数据输出到指定的文件中去。如frpintf(fp, "%c", 5);
sprintf(char *str, char * format,...);//根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组中去。直到出现'/0'为止。
snprintf(char *str, size_t size, const char * format,...);
//同上,不过结束条件为遇到'/0'或者达到参数size指定的大小为止。成功返回参数str字符串大小,失败返回-1
char *strcpy(char *dest, char *src);
char *strncpy(char *dest, const char *src, size_t n);
bzero(void *s, int n);//参数s所指内存区域的前n个字节,全部设为0
atoi();//字符串转为整形数。
4 在程序中执行linux命令
char cmd[100] = "ls -l > a.txt";
system(cmd);//用system函数来执行
5 关于段错误
一般都是指针引起,内存操作出了问题。未初始化,越界等等