1.
sqlite3>select * from people
NAME
ID
AGE
ADDR
AA
1
1
wuhang
NAME
ID
AGE
ADDR
bb
2
2
shanghai
sqlite3>insert into people values('cc',3,3,'beijin'); //就是要注意此处的引号
sqlite3>select * from people
NAME
ID
AGE
ADDR
AA
1
1
wuhang
NAME
ID
AGE
ADDR
bb
2
2
shanghai
NAME
ID
AGE
ADDR
cc
3
3
beijin
2.在创建表的时候 就等于确定了 每个记录的字段个数
*********************************************************************************
1.创建一个表的时候 ,没有指定段的类型,那么它默认是什么类型?
2.指定一个段为 char 型,为什么可以输入 ‘abcd’,这样类似字符串的值;
1. 实现myping
2.a.sqlit 工具 建立数据库
b. 待回调行数 执行sql 语句
3.
不用回调函数执行 sql 语句 最后要回收resultp的空间
实际上 dbResult 不是二维数组 他是按照 一整行 连续存储的
记录个数(行):nRow 字段个数n(列): Column
Column 开始到后面 是 dbResult 数组对应的值
4.实现在线词典(有代码)
client :
发送数据包
typede struct{
char type //regist login query
char name[15] //
char mtxt[1024] ;
}MSG;
server :
并发服务器
思想:
a. 注册以存在 告诉 客户端
b.登陆错误告诉客户端
c.翻译的结果传给客户端
5.学生信息管理系统
有代码
6. 移植 camera
1.jpeg
A. ./configure 生成Makefile
B. make 编译c文件
C. make install 生成库文件,并且安装
注意:默认安装的路径/usr/local/lib
D. 将这个目录的库文件拷贝到mjpg_streamer目录
2.mjpg_streamer
A. make
B. ./start.sh
3.火狐浏览器输入ip:port
注意:摄像头设备一定要加到虚拟机中来(ls -l /dev/video0 存在成功)
.
//*********************************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define IS_IP 0
#define IS_NOT_IP 1
#define POINT_ERR 2
#define MUCH_OR_LESS 3
#define NOT_EXIST 4
#define OTHER 5
#define TOO_BIG 6
int isip( char *strarray)
{
int flag = 0;
int i,j,count = 0,temp[3]={0,0,0};
char *str = strarray;
int a = 0,b = 0,c = 0,d = 0;
for (i = 0,j = 0 ; i < (int)(strlen(strarray)) ; i++ ) {
/*合法的整形和点字符*/
if ( (str[i] >= '0' && str[i] <= '9')|| str[i] == '.') {
/*对'.'号 进行累加 并用数组记录点好的位置 方便处理 */
if ( str[i] == '.' ){
count++;
temp[j++] = i;
continue;
}
}else{
/*处理不合法的字符ip*/
if((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')){
flag = NOT_EXIST;
}else{
flag = OTHER;
}
}
}
if(count == 3){
/*对满足三个点的字符串 进一步处理 判断是否合法!!*/
if((temp[0] == 1) || (temp[0]==2) || (temp[0] == 3) ){ // 对第一个点的位置进行判断
if( (temp[1] - temp[0] >= 2) && (temp[2] - temp[1] >= 2) ){
if(sscanf(str, "%d.%d.%d.%d ",&a,&b,&c,&d) == 4 && a >= 0 && a <= 255 && b >= 0 && b <= 255 && c >= 0 && c <= 255 && d>=0 && d <= 255){
flag = IS_IP;
}else{
flag = TOO_BIG;
}
}else{
flag = OTHER;
}
}else{
flag = MUCH_OR_LESS;
}
}else{
/*对于没有三 '.' 的情况 进行设置 */
flag = POINT_ERR;
}
return flag;
}
int main(void)
{
/*用于查看程序运行时间*/
clock_t begintime = 0,endtime = 0;
double resulttime = 0;
char s[50],*p;
int i = 1;
FILE * fp = NULL;
/*初始化时间*/
begintime = clock();
/*从txt文件中读写字符串*/
fp = fopen("E:\hhc\test1.txt","r");
if( fp = NULL){
printf("open the txt failed!\n!");
exit(1);
}
while(!feof(fp)){
memset(s, 0, sizeof(s));
p = fgets(s,50,fp);
if(p = NULL){
printf("get the char failed!!\n");
exit(0);
}
//检测字符串 是否属于合法的ip 并设置相应的返回值
i = isip(p);
printf("after test:");
//打印检测的结果,并设置相应的出错处理!!
switch(i){
case IS_IP: printf("is IP OK!!!\n");break;
case IS_NOT_IP : printf("not IP!\n");break;
case POINT_ERR: printf("not IP! err:'.' is (too much) or (less)\n");break;
case MUCH_OR_LESS: printf("not IP! err: the inter is too much or not exist inter between '.' and '.' \n");break;
case NOT_EXIST: printf("not Ip! err: the char is exist!!\n");break;
case OTHER: printf("not IP! err: the other char is exist!\n");break;
case TOO_BIG: printf("not IP! err: the number is too big!\n");break;
}
p = NULL;
}
/*d打印程序运行的时间*/
fclose(fp);
endtime = clock();
resulttime = (double)(endtime - begintime) / CLOCKS_PER_SEC;
printf("消耗时间:%.0f毫秒\n",resulttime*60);
}
//*********************************************************************************************************************
1.chdir(/) 为什么要建立在根目录下面
2.voliate
3.#ifdef _cplusplus
}
#endif
4.系统存储器重映射 是什么东西