- 博客(31)
- 收藏
- 关注
原创 修改表名、字段名以及添加约束
修改表名ALTER table old_name rename to new_name例:ALTER table users rename to qq_name;修改字段名ALTER table table_nameCHANGE old_name new_name type例:ALTER table gameschange gno game_id varchar(20);修改字...
2020-03-10 16:34:30 1391
原创 数据库——添加约束
创建库create database BASENAME;例:create database USERS;进入库use basename;例:use users;创建表create table tablename(a1 type [not null],a2 type [not null])例:create table USERS(user_qq varchar(20) n...
2020-03-10 08:32:47 239
原创 进程|信号
/*当僵尸进程产生的时候,我们有两种方法可以来处理僵尸进程1:使用kill -9 + pid 来杀死父进程kill -9 工作原理为:向父进程发送一个进程结束信号,当父进程接收到这个信号之后,他会暂时停止正在处理的工作,转而处理信号,这个信号又恰巧是结束进程的信号,所以父进程就直接结束了2:既然信号的工作方式是会暂停手上工作,有限处理信号的话,那么我们考虑不要向父进程发送结束进程的信号,我...
2019-11-13 20:10:06 228
原创 线程之间的同步|线程锁|线程的创建、取消
/*通过线程之间互相聊天这个练习,我们可以知道,在一个多线程并发的进程当中,到底是哪一个线程在运行,我们是没有办法控制的。那么,我了能够控制线程之间的运行关系,我们在多线程编程的时候,对所有的线程做同步处理。什么叫同步处理:也就是说,当一个线程不满足逻辑运行条件的时候,我们就应该让这个线程处于阻塞状态,以便不会影响到选择其他线程的时候的运行效果在聊天这个功能当中,我们使用了大量的标志位来确...
2019-11-13 20:07:34 278
原创 服务器搭建|共享内存删除共享内存
/*在两个进程之间的通讯,我们使用管道,在网络之中,两个进程之间的通讯,我们使用套接字(socket)1:服务器的搭建过程① 创建一个套接字,使用函数socket()函数名:socket()头文件:sys/types.h , sys/socket.h函数参数:int domain , int type , int protocol这3个参数正好代表了套接字的3个属性,分别为:域,类型...
2019-11-13 20:01:41 497
原创 系统io,write read,重定向open,lseek(SEEK_SET,SEEKCUR,SEEKEND)
/*区别与c语言中的文件IO:只能向普通文件内进行输入和输出,lsd中的文件io,他可以向任何类型的文件进行输入和输出操作。由于linux中万物皆文件,包括运行中的两个程序也是两个文件,我们就可以通过lsd中的文件io向运行中的两个程序写入信息来达到数据通讯的效果。//lsd中文件io的一组函数 : read 和 write函数名: write头文件:sys/type.h,unist...
2019-11-06 19:50:29 2251
原创 开奖代码
#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<time.h>#include<termios.h>#include<assert.h>#include<string.h>#include<syspes.h>#i...
2019-11-05 17:20:27 464
原创 使用fgets 和 fputs实现shell指令中cp文件复制
/*使用fgets和fputs实现shell指令中cp的文件复制到文件的功能分析:fgets源文件的内容,然后通过fputs输出到目标文件所以应该是“r”的形式打开源文件,“w”的形式打开目标文件现在最大的问题在于:源文件的文件名应该怎么写?目标文件的文件名怎么写所以现在问题就转换成了:如何将终端上输入的字符创,导入到程序中作为文件名使用利用主函数的参数 argv实现要求2:判断目标...
2019-10-21 22:26:11 872
原创 文件IO
1 /*2 文件IO:3 文件特性:运行快,断电数据丢失4 我们考虑在程序结束前文件数据由内存写入硬盘,下次程序运行时数据由硬盘写入内存56 三组函数:7 ① fprintf和fscanf8 fprintf将数据输出到文件,9 fscanf从文件读取数据1011 函数名:fprintf12 函数参数:F...
2019-10-21 16:33:43 183
原创 calloc,malloc,realloc
函数名:calloc函数参数:int num,int size函数返回值:void ptr函数功能:在堆空间上申请num个模块的内存空间,每个模块size大小,并且将申请出来的内存空间初始化为0.认为规定申请单个数据用malloc,申请数组使用calloc。realloc:为指定的堆空间重新分配大小realloc:参数:void ptr,int size致命缺点:会带碎片容易段错误...
2019-10-18 13:14:36 123
原创 结构体增、删、改、查
#include<stdio.h>#include<string.h>#include<user.h>typedef struct Score{int chinese;int math;int english;}score_t;typedef struct Student{char name[20];int id;score_t score...
2019-10-17 12:27:18 2056
原创 结构体 || 联合体
结构体结构体是一个自定义的复合数据类型例如:struct data_t; 一个代表人类的结构体,包含一下属性struct data_t{int height;int weight;int age;char name[20];char sex;}data;二分一对齐联合体只需把struct 改为union。typedef union data{}data_t;联合体是...
2019-10-16 12:59:36 172
原创 字符串 注册登录系统
/*使用字符串数组作为数据库,编写一个注册登录系统也就是说,注册的账号和密码都是字符串,注册成功后,将他保存进入字符串数组中注册的时候要求防重复注册登录的时候没有额外要求,仅仅要求① 注册好第一个账号后,能够注册第二个账号② 没有段错误*/#include<stdio.h>#include<string.h>#include<user.h>...
2019-10-15 18:36:26 331
原创 段错误
段错误信号:SIGSEGVctrl+c: SIGINT段错误原因:①:试图修改常量存储区的值②:试图修改空指针地址上的值③:试图修改野指针地址上的值无论如何段错误的发生势必有个取值操作,否则错误不会出生...
2019-10-15 13:04:26 160
原创 指针的偏移||通用指针|| 通用函数输入下标想交换位置 || 带参宏传入数据类型
加法或减法加法偏移到之后的地址,减法偏移到之前的地址。指针的偏移和指针的取值一样全是模块化操作,对一个指针+1意味着该指针偏移到下一个模块,所以指针的偏移完全取决于该指针的基础数据类型。void 指针通用指针,可以指向任意类型的指针无法直接取值如果要对一个void指针取值的时候必须对它强制数据类型转换来确保每一个模块多大void * 可以接任意的类型的 *比如:void * vpa...
2019-10-12 17:09:00 249
原创 生成库文件||关闭终端显示与缓冲区stdin
字符串的整体输入有两个函数①gets:直接传入字符数组②scanf:(不读空格)③最稳妥的字符串输入方式:fgets:1.char * str2.int size最多接收size字节3.FILE* fp一个指向文件的指针所以所有输入的内容是从fp指向的文件输入的那么,终端作为一个文件,表述方式为stdin,stdoutfgets(str,10,stdin);#include &...
2019-10-11 17:10:57 204
原创 字符数组与字符串
字符数组char str[6] = {‘h’,‘e’,‘l’,‘l’,‘o’};char str2[6] = “world”;printf("%s\n",str);scanf("%s",str2);for(i=0;str[i]!=0;i++){printf("%c",str[i]);}说明:①系统为了明确区分内存上的字符串从属关系,它会去寻找空字符,(ascii吗为0),我们称为结...
2019-10-10 13:36:25 181
原创 快速排序
二维数组先声明大数组的容量,再声明小数组的容量二维数组的遍历方式:先遍历大数组,再遍历大数组的时候,在遍历小数组也就是一个双层循环,外层循环遍历大数组,被嵌套的内层循环遍历小数组快速排序void quick_sort(int* arr,int left,int right){if(left>=right){return;}int l = left;int r = right...
2019-10-09 16:19:37 135
原创 数组
数组数组:数组是一个由若干个相同数据类型的数据,相结合后而形成的数据结构注意:数组是一种数据结构,不是一种数据类型。数据结构和数据类型最大的区别:数据结构无法直接互相赋值以及大小的比较。只能通过特定函数(也就是算法)来实现互相赋值以及大小比较的功能。那么数组作为一个数据结构应该如何理解:我们应该将数组理解成一个存储相同数据类型的容器,每一个存放数据的位置都有一个唯一的下标位置,我们可以通...
2019-10-08 14:41:23 146
原创 内存存储区 ||可变参函数
内存存储空间①栈存储区 3G内存大概不到8MB,专用处理持续时间较短的变量所有数据类型+变量名声明的局部变量都会在栈内存上申请空间特点:自动申请,自动释放,在声明变量的同时自动为该变量申请相应的内存空间,当生命周期结束时内核自动释放空间的使用权;先进后出在栈空间中严禁返回一个局部变量的地址int *func(){int a = 5;return &a;}//不允许这么写...
2019-09-30 17:39:23 162
原创 gdb
一个程序如果出现语法错误,在编译阶段会出现错误,如果出现逻辑错误,得不到正确运行的结果,这时可以一个节点一个节点地调试程序,最终找到错误点在哪儿。使用gdb调试工具1.生成一个可调试的可执行文件gcc demo.c -g此时生成的可执行文件会带有可调试属性。2.使用 gdb ./a.out 来启动c语言程序*/r:运行b:b+行数 或 b+函数名在指定位置打断如果断点位置不在主...
2019-09-30 11:29:57 104
原创 函数
printf()函数的运算过程为输出字符到终端,运算结果是输出字符的int型数量(称为返回值)函数带()表示调用函数我们把函数声明的参数列表(也就是接收数据的参数列表称为形参),函数调用处的参数也就是传递给函数的数据称为(实参):实参传递给形参,传值。整个函数设计时的思路应该和概念讲述的时候是相反的。...
2019-09-29 18:30:48 110
原创 switch分支 for while循环
switch caseswitch(变量){case value1:break;case value2:{int b;break;}…case valuen:break;default:break;}多个相等的value值时语法错误。break跳出大括号,若没有break执行余下的语句。在case语句中不能直接声明变量。for(:1:)while(){}...
2019-09-26 13:01:24 283
原创 变量命名||Gcc编译||运算符基础
变量的命名规则1.变量名不能以数字开头,否则语法错误;2.不能以关键字作为变量名,否则语法错误;3.变量命名时需要表达出变量含义;为了使变量名有意义,通常情况下我们使用英文取名方式;4.可以使用下划线开头:通常情况下为了区分两个含义非常接近的变量就会为其中一个用下划线开头。通常将系统中存在的账号用下划线开头(登录账号密码时);5.当我们想为拥有复合含义的数据声明的变量的时候,例如张三的身...
2019-09-24 17:45:43 406
原创 C语言数据类型
变量的概念内存的承载方式:以低电平的形式代表二进制数快速闪烁,以此代表二进制数每一个字节(Byte,8位bit)有一个十六进制的地址变量即是一个地址的别名字符串内的格式占位符:%d“\033[11D"光标向左偏移11个单位“\033[nC"光标向右偏移n个单位“\033[nA” 上“\033[nB” 下终端上的数据输入到内存scanf(”...
2019-09-23 17:40:55 149
原创 C语言day1
笔记中所有的“+”在代码或指令中表示空格/*linux系统中所有操作都是基于终端指令完成的。终端有一个最大的规则需要遵循:终端和通过指令等待操作的文件,他们必须处于相同路径下,(我们习惯性把路径称为目录)切换终端的路径使用shell指令:cd + 绝对路径/相对路径名ls 查看当前终端工作目录下有哪些文件,使用:ls-a: all显示所有(带隐藏的文件) .代表当前目录 …代表当前目...
2019-09-20 17:49:25 158
原创 C语言预科
ifconfig(interface configure) windows10(ipconfig)网络配置loop127.0.0.1本地回环 物理地址(全球唯一ID)255(11111111).255(11111111).255(11111111).0 (1表示屏蔽)inet192.168.10.2 网关地址:198.126.10.1 brodcast:192.168.10.255c...
2019-09-18 16:27:56 251
原创 linux常见命令之cp复制、chmod更改权限
type vi cdman(manual ,man 2 coner function,man 3 outerfunction)cd …/tab tab (tab twice to look all document)cp(copy) -r sorcefile objfile (-r when directory)cp …/day2/* ./(copy upper file ‘day2...
2019-09-16 17:17:13 2274
原创 linux elementry commend
mkdir day2cd day2mkdir abcmkdir abc/amkdir abc/bmkdir abc/ctouch abc/a/a.ctouch abc/b/b.ctouch abc/c/c.ctreesudo apt-get install treecd abccd arm a.ccd …rm -rf a(delet file must -rf) ...
2019-09-11 17:04:43 157
原创 Linux指令大全即字体颜色
linux指令pwd(print work direction)打印当前路径mkdir创建目录rm -rf(递归)删除文件touch创建文件clear清除屏幕cd(come direction)进入 tab联想 cd …进入上一层文件ls查看当前路径目录下文件夹/文件~代表当前使用的宿主目录,如/home/dearlordreboot重启系统 sudo reboot(sud...
2019-09-09 16:46:03 419
原创 python轻松入门
算数运算符+ - * / % //加减乘除与数学运算相同,%为取余符号,//为取整符号例题 求1234的各个位置的数字之和方法一:num=1234ge=num%10shi=num%100//10bai=num//100%10qian=num//1000sum=ge+shi+bai+qianprint(num)方法二:num=1234sum=0while(num):su...
2019-09-07 15:48:07 92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人